首页 > 解决方案 > 尝试从本地计算机连接到 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 的正确方法吗?

标签: ignite

解决方案


错误消息告诉一切需要:

引起:class org.apache.ignite.spi.IgniteSpiException:本地节点和远程节点版本号不同(节点不会加入,Ignite不支持滚动更新,所以版本必须完全相同)[locBuildVer=2.7.5 , rmtBuildVer=2.8.0,

Ignite 仅支持来自相同节点的集群,因此,您应该将本地节点升级到 2.8.0 或将远程节点降级到 2.7.5。


推荐阅读