ignite - 尝试从本地计算机连接到 ignite 缓存时发生 IgniteSpiException
问题描述
我有一个使用 IgniteDb 作为缓存提供程序的应用程序。它使用发现 url 作为: 127.0.0.1:47500..47509。现在我想在eclipse中使用java代码连接到这个缓存。我将代码编写为:
IgniteConfiguration cfg = new IgniteConfiguration().setBinaryConfiguration(
new BinaryConfiguration().setNameMapper(new BinaryBasicNameMapper(true)));
TcpDiscoveryMulticastIpFinder discoveryMulticastIpFinder = new TcpDiscoveryMulticastIpFinder();
Set<String> set = new HashSet<>();
set.add("127.0.0.1:47500..47509");
cfg.setPeerClassLoadingEnabled (true);
TcpDiscoverySpi discoverySpi = new TcpDiscoverySpi();
discoveryMulticastIpFinder.setAddresses(set);
discoverySpi.setNetworkTimeout (5000);
discoverySpi.setClientReconnectDisabled(true);
cfg.setDiscoverySpi(discoverySpi);
discoverySpi.setIpFinder(discoveryMulticastIpFinder);
cfg.setDiscoverySpi(discoverySpi);
Ignite ignite = Ignition.getOrStart(cfg);
IgniteCache<Integer, Person> cache = ignite.getOrCreateCache("person");
// Code to call cache put or get here
// putCache(cache);
//getCache(cache);
System.out.println("All Available Cache on server : "+ignite.cacheNames());
但是在运行错误时,我得到的错误是:
Caused by: class org.apache.ignite.spi.IgniteSpiException: Local node and remote node have different version numbers
(node will not join, Ignite does not support rolling updates, so versions must be exactly the same)
[locBuildVer=2.7.5, rmtBuildVer=2.8.0,
locNodeAddrs=[aschauha-t470.apac.tibco.com/0:0:0:0:0:0:0:1, aschauha-t470.apac.tibco.com/10.98.51.252, /127.0.0.1, /192.168.0.101],
rmtNodeAddrs=[aschauha-t470.apac.tibco.com/0:0:0:0:0:0:0:1, aschauha-t470.apac.tibco.com/10.98.51.252, /127.0.0.1, /192.168.0.101],
locNodeId=e66eeea7-5427-4fe7-8368-884641af534b, rmtNodeId=35ad5deb-d212-4a85-812e-ec7d44caa4a8]
at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:1997)
at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:1116)
at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:427)
at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2099)
at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:297)
... 10 more
请帮助我解决问题。另外,我上面提到的代码是连接到作为应用程序缓存的 ignite db 的正确方法吗?
解决方案
错误消息告诉一切需要:
引起:class org.apache.ignite.spi.IgniteSpiException:本地节点和远程节点版本号不同(节点不会加入,Ignite不支持滚动更新,所以版本必须完全相同)[locBuildVer=2.7.5 , rmtBuildVer=2.8.0,
Ignite 仅支持来自相同节点的集群,因此,您应该将本地节点升级到 2.8.0 或将远程节点降级到 2.7.5。
推荐阅读
- c++ - 错误 C2664 'void IVerify::SetParams(void)':无法将参数 1 从 'std::wstring' 转换为 'wchar_t *'
- javascript - 在 Angular 项目中实现 Google-Blockly 的块工厂
- reactjs - 为什么 DOM 没有随着 ReactJS 中的状态变化而更新?
- javascript - state.concat 不是函数 - 类型“ITask”不是数组类型
- r - 是否可以通过仅包含包的特定部分来减小降价 html 报告的大小?
- sql-server - SQL bacpac 导出中不支持的元素
- transactions - 使用 Corda 进行债券交易的基本方法
- f# - 向(F#)记录添加“抽象”方法
- python-3.x - 使用 Youtube 上的机器人播放音乐而不下载文件
- r - “R工作室未开放”