我有四個虛擬機。我在我的應用程序中以「嵌入」模式運行hazelcast,試圖將它用於hibernate l2緩存。Hazelcast節點拒絕加入彼此
當我嘗試啓動不同的組時,會出現混合行爲。由於機器的子網劃分,我認爲我遇到了問題。 machines/sbin/ifconfig顯示四個節點之間有兩臺機器的三個子網(node1和node4顯示除迴環以外的兩個網絡設備)。
Mancenter正在第五個節點上運行。
機/ subnet1/subnet2
節點1 10.10.40.1 10.10.27.1
節點2 10.10.42.1
節點3 10.10.40.2
節點4 10.10.42.2 10.10.27.2
因此,node1和node3共享一個子網,node1和node4共享,node2和node4共享。
行爲非常不一致,儘管節點1和節點2一起開始似乎可靠地形成一個羣集,就像節點1和節點3一樣。其他組合似乎進入裂腦方案,在那裏它出現我有兩個或更多具有相同名稱的集羣。
查詢我們的內部DNS,主機名將解析爲10.10.40和10.10.42 IP。
它們具有相同的配置。我試圖將接口轉換爲10.10.40。*和10.10.42。*,同時將hazelcast.socket.bind.any轉換爲false。由於我們的部署框架在羣集中具有相同的配置是高優先級。
我已經嘗試通過主機名和IP(從主機名的nslookup中解析出的那個)列出節點。按主機名列出將成爲操作的要求。
在某些情況下,我設法讓它們形成一個羣集,儘管遷移失敗了,因爲它抱怨說它無法到達其中一個節點。好奇心我已經注意到mancenter有時候會將節點標識爲另一個節點,比如當前我有node3和node4正在運行(node1和node2的應用程序關閉),並且它將其中的一個標識爲node2。我想知道這是否與節點在虛擬機上運行(每個虛擬機一個實例)有關。我相信hostOS是redhat,虛擬機運行centOS。
我在錯誤的軌道上認爲這是一個問題?還有什麼可以造成這種情況?
沒有更深的想法我的第一個猜測:子網之間的防火牆? – noctarius