我们正在使用jGroups构建两个集群:“server”和“app”。它们是独立的集群,运行在不同的机器上(通过 JMS 相互通信)。我们的一些代码只需要在集群中的一个节点上运行,因此我们使用 jGroups 中的“协调器”/主概念来选择运行该代码的节点。
我们还有另一个要求:当任何集群节点死亡时,我们需要通知服务器管理员。我们可以让每个集群节点监视成员资格更改,但是我们无法从“应用程序”集群节点发送故障通知,只能从“服务器”集群节点发送故障通知。
最后一个问题:是否可以在不参与协调者/主选举的情况下加入 jGroups channel /集群?这样“服务器”集群节点就可以作为仅观察者成员加入“应用程序”集群(接收“ View 更改”事件,但不参与选举)?
最佳答案
我对需求不是很清楚,但以下解决方案可能有效:
在您的应用程序中包含“nodeType”属性并从属性文件中读取它。 更改选举算法,使得只有“app”节点类型参与选举,节点类型“server”丢弃选举消息。
关于java - 仅限观察者的 jgroups 集群成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7577962/