服务器节点无法在Apache Ignite中相互发现

时间:2016-07-29 17:50:17

标签: caching ignite

我正在尝试在本地计算机中设置3个服务器节点。每个节点都启动但无法加入群集。

我可以在每个服务器节点的日志文件中看到以下消息。

  

拓扑快照[ver = 1,服务器= 1,客户端= 0,CPU = 4,堆= 0.1GB]

这是启动服务器的代码。

IgniteConfiguration config = new IgniteConfiguration();
TcpDiscoverySpi spi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
ipFinder.setAddresses(Arrays.asList("192.168.0.3","192.168.0.3:47100..47120"));
spi.setIpFinder(ipFinder);
config.setDiscoverySpi(spi);
// Start Ignite node.
ignite = Ignition.start(config);

任何人都可以建议我在这里遗失一些东西!

2 个答案:

答案 0 :(得分:0)

尝试删除没有端口的地址,只留下指定范围的地址:

ipFinder.setAddresses(Arrays.asList("192.168.0.3:47100..47120"));

答案 1 :(得分:0)

挣扎了好几个小时,只能通过以下方式解决它。

  1. 确保您已设置服务器点亮的本地接口和端口范围:

    1 ./ sigt
    
  2. 相应地配置您的IP查找器。假设该节点要在同一配置的同一台机器上找到对等体(即,按照上述[1]):

    TcpDiscoverySpi spi = new TcpDiscoverySpi();
    
    //This address should be accessible to other nodes
    spi.setLocalAddress("192.168.0.1");
    spi.setLocalPort(48500);
    spi.setLocalPortRange(20);
    
  3. 当实例依次启动时,他们将使用配置范围内的端口,并且在该范围内,他们将使用TCP发现相互发现。

    这是我设法在同一台机器上连接2个以上服务器节点而不使用多播发现的唯一方法。