java – 如何强制JGroups哪个节点成为协调器?
作者:互联网
我正在寻找一种方法来强制JGroups使用特定的服务器作为协调器,如果该服务器不存在,则选择一个新的协调器,直到指定的协调器重新加入群集并接管为协调器.
在这种情况下,我们有一些信息,我们通过协调员听取主题更新来推送到集群,但是获取和更新.处理这些更新可能是资源密集型的,因此我们不希望它向外界提供任何服务.因此,在集群前面的负载均衡器中,我们将其设置为不发送给协调器.但是因为协调器是随机选出的,所以我们基本上需要关闭集群,直到只有一台机器在那里,然后重新启动集群的其余部分.
解决方法:
目前没有办法做到这一点. Jgroups花了相当多的时间确保协调器可以是组中的任何节点.维护和监视组成员列表健康状况的所有任务在组中的所有成员之间共享,以确保协调员职责不会过多地影响协调员的性能.标准GMS(Group MembershipService)协议栈类负责协调器选择.目前它只是视图列表中的第一个主机.
要获得此行为,您将不得不实现自己的协议栈.有趣的是,我一直在为Jgroups开发一个协议栈,它实现了你所要求的,但它还没有为黄金时间做好准备.
然而,其他人可能会对这个问题感到不满.我建议在jgroups mailing list上发帖并提出同样的问题.
标签:java,cluster-computing,jgroups 来源: https://codeday.me/bug/20190530/1183040.html