【发布时间】:2018-10-29 16:28:36
【问题描述】:
我在不同位置有两个 ES 节点(在一个集群中),我想确定我的应用程序使用最近的一个以避免网络延迟。
我已设置Forced Shard Allocation Awareness 以使这些节点中的每一个都“独立”(包含主分片或另一个主分片的副本,但绝不会同时包含两者)
cluster.routing.allocation.awareness.force.my_attr.values: my_attr_val1, my_attr_val2
cluster.routing.allocation.awareness.attributes: my_attr
现在我知道我可以通过添加查询Preference 来强制我的查询在特定节点上运行,例如:
_only_nodes:my_attr:my_attr_val1
但据我了解,如果发生节点故障,它会失败 - 所以基本上我不想这样做。
我能做的就是设置
_prefer_nodes:my_attr:my_attr_val1
或者什么都不做,让 ES 完成它的工作。问题是 - ES 是选择“最好的”(比如说最近的)节点来查询还是随机选择一个? Elasticsearch 如何确定要询问的节点?
我的ES版本是5.5.0
【问题讨论】:
-
您可以阅读此博客以更深入地了解该主题elastic.co/blog/…
-
感谢您提供的链接,它非常有趣 - 但是当我的实例为 5.5.0 时,似乎 ARS 是在 ES 6.1 中实现的
标签: elasticsearch elasticsearch-5