如何让集群中的节点知道其他节点处于 specific/desired 状态?

How can I let a node in my cluster know other nodes are in a specific/desired state?

我的集群中有一个节点(让我们称它为 "master" 因为缺少更好的术语),当它启动时,它也需要启动一个外部服务,但前提是其他集群中的节点都已启动,并初始化了自己的外部服务。

看起来我们可以使用节点之间共享的数据库,并让每个节点在准备就绪时更新其状态。主节点将继续轮询数据库,直到它看到所有其他节点都已准备就绪。只有这样master才会启动自己的对外服务。

以上方法似乎工作正常。不过,我很想知道是否还有其他方法、设计模式或最佳实践。

这些方法通常称为 Consensus Protocols or Algorithms The most well-knowns are Raft, Paxos and Zab. For simpler use cases you can consider the Gossip Protocol