【问题标题】:How Elasticsearch determines which node in cluster to queryElasticsearch 如何确定要查询集群中的哪个节点
【发布时间】: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


【解决方案1】:

如果您不设置首选项,5.5 中的行为是以循环方式将请求路由到分配的分片。 ES 没有“最近节点”系统。

【讨论】:

    猜你喜欢
    • 2018-10-29
    • 2010-10-17
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多