elasticsearch - 如何在 Elasticsearch 中避免或最小化具有 3 个节点的裂脑

标签 elasticsearch

我尝试在这里和那里阅读不同的建议,但我仍然不明白我们如何使用 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”并且可以继续正常运行。

Enhancements to Zen discovery fixing partial isolation

关于elasticsearch - 如何在 Elasticsearch 中避免或最小化具有 3 个节点的裂脑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712006/

相关文章:

python - 使用 elasticsearch-dsl-py 在另一个字段中包含的字段上创建术语查询

elasticsearch - ElasticSearch在单个索引中具有相同映射的多种类型

scala - 使用Java API通过Scala按ID删除Elasticsearch文档

python - 通过 elasticutils 过滤的 ElasticSearch

elasticsearch - 从 ElasticSearch 中删除数据

ruby-on-rails - ElasticSearch:允许零参数的查询

elasticsearch - Elasticsearch 聚合 : "aggs" query- "field" vs "script"- which is faster?

elasticsearch - 在ElasticSearch 7.5中多样化搜索结果

elasticsearch - ElasticSearch中唯一嵌套文档的数量

elasticsearch - 最终一致性——如何避免幻影