Elasticsearch:什么时候应该考虑在 Elasticsearch 中添加协调节点?

仅协调节点(coordinating only nodes)充当智能负载均衡器。 仅协调节点的这种特殊角色通过减轻数据和主节点的协调责任,为广泛的集群提供了优势。 加入集群后,这些节点与任何其他节点类似,都会获取完整的集群状态,并利用此信息有效地将请求定向到适当的目的地。

将协调器节点添加到 Elasticsearch 集群可以是提高集群性能和效率的战略举措。 协调节点,也称为客户端节点,本质上是 Elasticsearch 节点,不保存任何数据或执行任何计算。 它们的主要作用是将来自客户端的搜索和索引请求路由到适当的数据节点,然后聚合响应。

协调节点

诸如搜索请求或批量索引请求之类的请求可能涉及不同数据节点上保存的数据。 例如,搜索请求分两个阶段执行,这两个阶段由接收客户端请求的节点(协调节点)协调。有关数据是如何索引的,请阅读文章 “Elasticsearch:索引数据是如何完成的”。有关数据是如何读取的,请阅读文章 “Elasticsearch:数据是如何被读取的?”。

在分散阶段,协调节点将请求转发到保存数据的数据节点。 每个数据节点在本地执行请求并将其结果返回给协调节点。 在收集阶段,协调节点将每个数据节点的结果缩减为单个全局结果集。

每个节点都是隐式的协调节点。 这意味着通过 node.roles 具有显式空角色列表的节点将仅充当协调节点,无法禁用。 因此,这样的节点需要有足够的内存和 CPU 才能处理收集阶段。

详细阅读:Node | Elasticsearch Guide [8.10] | Elastic

以下是您应该考虑向集群添加协调节点的一些场景

  • 高查询负载:如果你的集群遇到高查询负载,添加协调节点可以帮助更均匀地分配负载。 协调节点可以处理分发查询和聚合结果的任务,从而释放数据节点以专注于执行查询。
  • 复杂聚合:如果你的用例涉及复杂聚合,协调节点可能会很有用。 聚合可能会占用大量资源,将这项工作卸载到协调节点有助于提高性能。
  • 大量索引或分片:如果你的集群具有大量索引或分片,则路由请求的任务可能会变得相当复杂。 添加协调节点可以帮助管理这种复杂性并提高请求路由的效率。
  • 高客户端连接计数:如果有大量客户端连接到集群,添加协调节点可以帮助更有效地管理这些连接。 协调节点可以处理客户端连接,从而释放数据节点以专注于处理请求。
  • 混合云或多区域部署:在混合云或多区域部署中,协调节点可用于根据数据位置和网络延迟等因素将请求路由到适当的数据节点。

在添加协调节点之前,必须考虑对集群资源的影响。 协调节点需要 CPU、内存和网络带宽,因此你必须确保集群有足够的资源来支持其他节点。

另外,请记住,添加协调节点并不是解决所有性能问题的灵丹妙药。 监控集群的性能并根据需要进行调整非常重要。

以下是一些问题和解答

问:Elasticsearch 中的协调节点是什么?

答:协调节点也称为客户端节点,是不保存任何数据或执行任何计算的节点。 它的主要作用是将来自客户端的搜索和索引请求路由到适当的数据节点,然后聚合响应。

问:我什么时候应该考虑向集群添加协调节点?

答:如果你的集群正在经历高查询负载,如果你的用例涉及复杂的聚合,如果你的集群有大量索引或分片,如果你有大量客户端连接到你的集群,你应该考虑添加协调器节点,或者如果你正在运行混合云或多区域部署。

问:协调器节点如何提高集群的性能?

答:协调节点可以通过卸载路由请求和聚合来自数据节点的响应的任务来提高性能。 这使得数据节点能够专注于执行查询,从而加快响​​应时间。

问:协调节点需要哪些资源?

答:协调器节点比数据节点需要更少的 DISK、CPU 和 RAM。

问:在添加多少个节点后,我应该考虑将协调节点添加到我的 Elasticsearch 集群中?

答:添加协调器节点的决定并不严格基于集群中的节点数量。 更多的是关于集群的工作负载和性能。 如果你的集群遇到高查询负载、复杂聚合、大量索引或分片或大量客户端连接计数,那么添加协调器节点可能会很有帮助。 但是,作为一般准则,当集群增长超过 10-20 个节点时,你可能会开始考虑添加协调器节点。 请记住,监控集群的性能并根据需要进行调整非常重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/127341.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

投票礼物打赏流量主小程序开发

投票礼物打赏流量主小程序开发 投票功能:用户可以参与投票,选择自己支持的候选人或选项。礼物功能:用户可以给候选人或其他用户送礼物,以表示赞赏或支持。打赏功能:用户可以给候选人或其他用户打赏,以表示…

x64内核实验7-线程

x64内核实验7-线程 TOC 线程是比较重要的内核结构,思考一下其实可以想到线程结构体在64位下的变化应该不会很大最多只是扩充了一些内容,因为从我们之前分析段页时候会发现cpu更新的这些内容大部分不影响xp时候的线程切换机制,下面我们来验证…

MySQL笔记(进阶篇)

包含内容: 存储引擎 索引 SQL优化 视图/存储过程/触发器 锁 InnoDB引擎 MySQL管理 存储引擎 MySQL体系结构 连接层:最上层是一些客户端和连接服务,主要完成一些类似于连接处理,授权认证,及相关的安全方案.服务器也会为安全接入的每个客户验证它所…

AXI总线协议基础--几分钟熟悉通道信号和基础架构

目录 一、AXI协议基础 1.1读写通道的基本架构图 1.2猝发操作举例 1.3传输顺序 二、各个通道中的信号描述 2.1全局信号 2.2写地址通道信号 2.3写数据通道信号 2.4写响应通道信号 2.5读地址通道信号 2.6读数据通道 三、通道握手 3.1单一信息传输时的握手过程 3.2不…

为Xshell生成密钥,实现免密登录远程Linux服务器

1、为Xshell生成密钥 依次打开Xshell-->工具-->新建用户密钥生成向导。 打开如下图所示的生产密钥参数窗口。 按默认参数,直接单击“下一步”按钮,直到如下图所示的用户密钥信息对话框。 在该界面,可以设置密钥名称,并设置…

用《斗破苍穹》的视角打开C#3 标签与反射(人物创建与斗技使用)

随着剧情的发展,主线人物登场得越来越多,时不时跳出一个大佬,对我张牙舞爪地攻击。眼花缭乱的斗技让我不厌其烦,一个不小心,我就记不清楚在哪里遇上过什么人,他会什么斗技了。这时候,我就特别希…

[CISCN2019 华北赛区 Day1 Web5]CyberPunk 二次报错注入

buu上 做点 首先就是打开环境 开始信息收集 发现源代码中存在?file 提示我们多半是包含 我原本去试了试 ../../etc/passwd 失败了 直接伪协议上吧 php://filter/readconvert.base64-encode/resourceindex.phpconfirm.phpsearch.phpchange.phpdelete.php 我们通过伪协议全…

JUC第十七讲:JUC集合: ConcurrentLinkedQueue详解

JUC第十七讲:JUC集合: ConcurrentLinkedQueue详解 本文是JUC第十七讲:JUC集合 - ConcurrentLinkedQueue详解。ConcurerntLinkedQueue一个基于链接节点的无界线程安全队列。此队列按照 FIFO(先进先出)原则对元素进行排序。队列的头部是在队列中时间最长的…

css自学框架之选项卡

这一节我们学习切换选项卡,两种切换方式,一种是单击切换选项,一种是鼠标滑动切换,通过参数来控制,切换方法。 一、参数 属性默认值描述tabBar.myth-tab-header span鼠标触发区域tabCon.myth-tab-content主体区域cla…

Mybatis 拦截器(Mybatis插件原理)

Mybatis为我们提供了拦截器机制用于插件的开发,使用拦截器可以无侵入的开发Mybatis插件,Mybatis允许我们在SQL执行的过程中进行拦截,提供了以下可供拦截的接口: Executor:执行器ParameterHandler:参数处理…

敲代码之余的表情包

欢迎来到上班休息区,请交出你的程序员专属表情包!你可以从以下几个方面进行创作(仅供参考)此为内容创作模板,在发布之前请将不必要的内容删除 方向一:分享你最喜欢的表情包 提示:请至少分享5个…

SpringBoot 如何使用 JWT 实现身份认证和授权

Spring Boot 使用 JWT 实现身份认证和授权 JSON Web Token(JWT)是一种用于在网络应用之间安全传递信息的开放标准。它使用了一种紧凑且独立于语言的方式在各方之间传递信息,通常用于在客户端和服务器之间验证用户身份和授权访问资源。本文将…