gpt4 book ai didi

algorithm - 哪个集群节点应该处于事件状态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:56 25 4
gpt4 key购买 nike

有一些集群和一些 unix 网络守护进程。该守护进程在每个集群节点上启动,但只有一个可以处于事件状态。

当事件守护进程中断时(无论是程序中断还是节点中断),其他节点应该变为事件状态。

我能想到几种可能的算法,但我认为已经对此进行了一些研究和一些现成的算法?我对吗?你能告诉我答案吗?

谢谢。

最佳答案

Jgroups 是一个 Java 网络堆栈,它包括 DistributedLockManager 类型的支持和集群投票功能。这些允许任意数量的 unix 守护进程就谁应该处于事件状态达成一致。所有节点都可能试图获取锁(例如),只有一个节点会成功,直到应用程序或节点失败。

Jgroups也有特定通信 channel 的协调者的概念。一次只能有一个节点作为协调器,当一个节点发生故障时,另一个节点成为协调器。很容易测试您是否是协调员,在这种情况下您将处于事件状态。

参见:http://www.jgroups.org/javadoc/org/jgroups/blocks/DistributedLockManager.html

如果你打算自己实现这个,有很多事情要记住:

  • 每个节点都需要对集群有一致的看法。
  • 所有节点都需要通知所有其他节点它们在线——可能使用多播。
  • 离线的节点(由于 ap 或节点故障)需要从所有其他节点的“ View ”中删除。
  • 然后您可以让具有最低 IP 的节点或其他节点成为事件节点。
  • 如果这不合适,那么您将需要进行某种投票交换,以便节点可以同意谁是活跃的。类似于:http://en.wikipedia.org/wiki/Two-phase_commit_protocol

关于algorithm - 哪个集群节点应该处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2956849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com