我尝试在这里和那里阅读不同的建议,但我仍然不明白我们如何使用 3 个节点解决两个节点上的问题。
如果我有 A<->B<->C<->A 节点并且 A <-> B 网络连接断开,如何避免形成 2 个集群 A <-> C 和 B <-> C并行运行?
最佳答案
当您的某些集群节点无法连接到其他集群节点时,就会出现裂脑情况。
对于大型 Assets ——尤其是地理分布较大的 Assets ——中间环节可能会丢失。如果集群的两个部分都是 quorate(有足够的可用节点,如配置中定义的那样),它们将继续“工作”,最终会导致两者之间的数据不同步。
这在您的场景中不会发生,因为节点 C 知道 A 和 B 都在线 - 因此即使 A 和 B 之间的通信处于离线状态,您也不会形成两个独立的集群。
如果 A 完全丢失,则 B+C 超过 50% 的节点 - 因此您的集群知道它是“quorate”并且可以继续正常运行。
关于elasticsearch - 如何在 Elasticsearch 中避免或最小化具有 3 个节点的裂脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712006/