有一些集群,还有一些unix网络守护进程。此守护程序在每个群集节点上启动,但只有一个可以处于活动状态。
当活动守护程序中断时(节点是否中断程序中断),其他节点应该变为活动状态。
我可以想到几种可能的算法,但我认为已经有一些已经完成的研究和一些现成的算法?我对吗?你能指点我的答案吗?
感谢。
答案 0 :(得分:1)
Jgroups是一个Java网络堆栈,包括DistributedLockManager
类型的支持和群集投票功能。这些允许任意数量的unix守护程序就谁应该活动达成一致。所有节点都可能尝试获取锁(例如),只有一个节点会成功,直到应用程序或节点发生故障。
Jgroups还具有特定通信渠道协调员的概念。一次只有一个节点可以是协调器,当节点发生故障时,另一个节点成为协调器。可以很容易地测试您是否是协调员,在这种情况下您将处于活动状态。
请参阅:http://www.jgroups.org/javadoc/org/jgroups/blocks/DistributedLockManager.html
如果您打算自己实现这一点,请记住一些事项: