所有节点是否都具有相同的集群节点序列,特别是种子列表中的第一个节点?
例如
Node-1: Seed nodes
{Node-1, Node-2}
Node-2: Seed nodes
{Node-2, Node-1}
两个节点的节点序列不同。根据我的测试,节点不加入群集,这将无法正常工作。任何人都能说出这背后的原因吗?
答案 0 :(得分:6)
第一个种子节点是特殊的,如Cluster文档中所述: http://doc.akka.io/docs/akka/snapshot/java/cluster-usage.html
它必须是所有节点上相同的第一个配置节点,以便所有节点都能确定它们加入同一个集群。
引用:
种子节点可以按任何顺序启动,并且不必使所有种子节点都运行,但是在最初启动集群时必须启动配置为种子节点配置列表中第一个元素的节点,否则其他种子节点不会被初始化,也没有其他节点可以加入群集。 特殊第一个种子节点的原因是避免在从空簇开始时形成分离的岛。最快同时启动所有已配置的种子节点(顺序无关紧要),否则在节点可以加入之前,它可以占用配置的种子节点超时。
一旦启动了两个以上的种子节点,关闭第一个种子节点就没有问题。如果重新启动第一个种子节点,它将首先尝试加入现有集群中的其他种子节点。