我建立了一個分佈式系統,其中不同的節點可以是領導者或追隨者。在大多數用例中,我只有一個領導和幾個追隨者。領導者通常在其服務器上是單一的,而追隨者在其他服務器上運行(其中一些在同一個JVM中)。最好的JGroups堆棧配置領導者/追隨者關係
追隨者節點永遠不必向對方發送消息,他們只會與領導者節點進行通信。目前,我使用tcpgossip協議來發現羣集的成員。我的GossipRouter運行在與領導者節點相同的JVM中。實際上它工作得很好,我的集羣看起來足夠穩定。
據我瞭解tcpgossip協議,每個節點伸出GossipRouter並從中獲取信息。所以在我的情況下,所有的跟隨者節點聯繫領導者節點運行的服務器。然而,當我關閉從動節點中的一個,我可以看到從其它從動警告消息節點該狀態:
警告:螺紋= TransferQueueBundler,myCluster中,火箭21632週五年11月18十點22分十一秒CET 2016 org.jgroups.protocols.BaseBundler sendSingleMessage JGRP000029:ROCKET-21632:向zeus-10187(102字節)發送消息失敗:java.net.SocketTimeoutException:連接超時,頭文件:VERIFY_SUSPECT:[VERIFY_SUSPECT:ARE_YOU_DEAD],TP:[ CLUSTER_NAME = myCluster中]
警告:螺紋= TransferQueueBundler,myCluster中,火箭21632週五年11月18 10點21分19秒CET 2016 org.jgroups.protocols.TP sendToMembers JGRP000034:火箭21632:失敗仙定消息宙斯-10187:java.net.SocketTimeoutException:連接超時
其中ROCKET-21632
和zeus-10187
兩種追隨者。我期望追隨者不會互相交談,因爲使用了GossipRouter,但似乎並非如此。
有沒有辦法建立一個集羣,其中一些節點永遠不會互相對話?
謝謝你的快速回答。我會試一試,讓你知道它是怎麼回事。謝謝! – Azeq