Elasticsearch 集群一般是由多个节点共同组成的分布式集群,节点之间互通,彼此配合,共同对外提供搜索和索引服务(节点之间能够将客户端请求转向到合适的节点)。不同的节点会负责不同的角色,有的负责一个,有的可能负责多个。Elasticsearch中有多个节点角色,其中有两个比较主要的是 数据节点 和 主节点:
数据节点(Data Node) 主要承担了数据存储和数据处理的工作:保存索引分片,处理与数据相关的操作,如CRUD、搜索和聚合等各种I/O、内存和cpu密集型操作。(在集群使用过程中,需要注意监控数据节点的资源使用率,并在服务过载时通过添加更多的数据节点,进行集群扩容,可以保障集群的稳定)
负责轻量化整个集群范围内的操作,例如创建或删除索引、跟踪哪些节点是集群的一部分以及决定将哪些分片分配给哪些节点。对于集群健康来说,拥有一个稳定的主节点非常重要。
是有资格被选为主节点的节点,任何符合主节点条件的节点(默认情况下为所有节点)都可以通过主选择过程被选为主节点。
默认情况下,所有节点都是数据节点,也都是备选主节点,这对于小型集群来说非常方便。但是数据节点,处理索引和搜索数据的请求都是CPU、内存和I/O密集型工作,可能会对节点的资源造成压力。随着集群的增长,为了确保主节点稳定且不受压力,保障集群的稳定,将 主节点 和 数据节点 分离变得非常重要。
专用主节点(Dedicated Master Node)
Elasticsearch 集群中,设置了只能作为主节点的节点。
node.master: true
node.data: false
node.ingest: false
cluster.remote.connect: false 设置专用主节点的主要目的是为了保障集群增大时的集群稳定。另外也建议专用主节点个数至少为3。
主要原因为: 1. 专用主节点只有1个时,只有1个备选主节点,discovery.zen.minimum_master_nodes也设置为1,在发生故障时缺少备份。 2. 专用主节点个数是2时,有2个备选主节点,minimum_master_nodes也设置为1,有备份,但如果网络发生故障,在重新选主时,有发生脑裂的风险,每个备选主节点都将自己设置为主节点;minimum_master_nodes 设置为2,发生故障时,可选主节点个数达不到法定要求,不能选出主节点。 3. 专用主节点个数是3时,有3个备选主节点,discovery.zen.minimum_master_nodes设置为2,如果网络发生故障,丢失一个可选主节点,在重新选主时,能有效选出主节点。
其他详细说明,可以参考 ES节点说明。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。