【问题标题】:Elasticsearch How Coordinating node works?Elasticsearch 协调节点如何工作?
【发布时间】:2021-03-16 05:41:53
【问题描述】:

我正在使用 Elsaticsearch 集群(7.7 OSS 版本)。

我总共运行 5 个节点,2 个用于协调节点,3 个用于主节点和数据节点。

我阅读了 Elasticsearch 节点角色指南(https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html#coordinating-node) 它告诉“每个节点都是隐含的协调节点”

而且我很困惑,该指南意味着我的主数据节点也可以是协调节点,并且协调节点和主数据节点的分离变得无用。

如果协调节点角色为空,那么协调节点获得更高的优先级来处理搜索请求或批量索引?

我的协调节点的yml文件是这样的

node.master: false
node.data: false
node.ingest: false

当我调用 _cat/nodes api 时,我的协调节点实际上具有角色“remote_client_cluster” 我的协调节点实际上是作为协调节点工作的吗?还是作为 remote_client_cluster 节点工作?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    确实,所有节点本质上都是协调节点,这意味着如果它们收到用户请求,它们就可以处理用户请求。您的两个协调节点实际上是coordinating-only nodes,这意味着它们所能做的就是充当负载平衡器节点,将用户请求分派到数据节点并收集节点响应,然后再将它们发送回客户端。

    当您引入仅协调节点时,其想法是将所有用户流量引导至这些节点,无论流量来自您的客户端、Logstash、Kibana 还是任何其他需要与 Elasticsearch 交互的应用程序。那些仅协调的节点将知道集群状态,从而知道将搜索和索引流量路由到哪里。它们就像智能负载平衡器一样。

    您的仅协调节点,要真正仅协调,必须具有以下配置:

    node.data: false 
    node.ingest: false 
    node.master: false 
    node.ml: false 
    node.remote_cluster_client: false 
    node.transform: false 
    node.voting_only: false 
    

    总结一下:

    • 您的两个协调节点将像集群前面的负载平衡器一样处理和管理用户流量
    • 您的主节点将完成他们的主节点工作
    • 您的数据节点将完成他们的数据工作

    【讨论】:

    • 感谢您的回复!我现在了解协调节点。如果我没有在协调节点中写 node.remote_cluster_client:false ,它似乎仍然可以作为协调节点(我的logstash输出是两个协调节点ip)。对吗?
    • 太好了,很高兴它有帮助!
    猜你喜欢
    • 1970-01-01
    • 2022-12-10
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 2022-10-22
    • 2015-03-18
    相关资源
    最近更新 更多