有没有办法将多个ES群集相互同步? ES文档不鼓励拥有跨越多个数据中心的集群。所以为了避免我在每个数据中心都有不同的ES集群。我还需要在每个群集中索引相同的数据。
实现这一目标的一种方法是将每个文档发送到每个群集。但是发出'n'写请求似乎是不必要的。此外,如果某些写入请求失败,则群集可能会失去同步。
群集是否可以“订阅”其他群集中的更改?或者将写入发送到主集群(无论哪一个最接近数据源)并让它最终复制到其他集群?
编辑:我读过有关部落节点的信息。文档说它只适用于读取并且有一些限制。那会让我这么做吗?
答案 0 :(得分:0)
您可以在数据中心ID [1]上设置自定义路由/分配策略。这将确保分片的一个副本进入每个数据中心。实施例
cluster.routing.allocation.awareness.force.dc.values: dc1,dc2
cluster.routing.allocation.awareness.attributes: dc
[1] https://www.elastic.co/guide/en/elasticsearch/reference/1.6/modules-cluster.html