2016-07-29 47 views
0

我試圖在本地機器中設置3個服務器節點。每個節點啓動但無法加入羣集。服務器節點無法在Apache Ignite中發現彼此

我可以在每個服務器節點的日誌文件中看到以下消息。

拓撲快照[版本= 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); 

任何人都可以請建議,如果我在這裏失去了一些東西!

回答

0

嘗試不端口取出地址,只留一個指定範圍內的一個:這個掙扎了幾個小時

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

,只能通過執行以下操作解決它。

  1. 確保您設定的本地接口和端口範圍上您的服務器LITENING:

    TcpDiscoverySpi spi = new TcpDiscoverySpi(); 
    
    //This address should be accessible to other nodes 
    spi.setLocalAddress("192.168.0.1"); 
    spi.setLocalPort(48500); 
    spi.setLocalPortRange(20); 
    
  2. 相應地配置IP取景器。假定節點是找到類似地配置(即,按照上述[1])在同一臺機器上的對等:

    TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder(); 
    ipFinder.setAddresses("192.168.0.1:48500..48520"); 
    
    spi.setIpFinder(ipFinder); 
    

作爲實例反過來啓動時,他們將內配置使用的端口範圍內,並且在此範圍內,他們將使用TCP發現來發現彼此。

這是我設法在同一臺機器上連接2+服務器節點而不使用多播發現的唯一方法。

相關問題