有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
Elasticsearch 集群一般是由多个节点共同组成的分布式集群,节点之间互通,彼此配合,共同对外提供搜索和索引服务(节点之间能够将客户端请求转向到合适的节点)。不同的节点会负责不同的角色,有的负责一个,有的可能负责多个。Elasticsearch 中有多个节点角色,其中有两个比较主要的是数据节点和主节点。

数据节点(Data Node)

主要承担了数据存储和数据处理的工作,保存索引分片,处理与数据相关的操作,例如 CRUD、搜索、聚合等各种 I/O、内存和 CPU 密集型操作。集群使用过程中,需要注意监控数据节点的资源使用率,并在服务过载时通过添加更多的数据节点,进行集群扩容,以保障集群的稳定性。

主节点(Master Node)

负责轻量化整个集群范围内的操作,例如创建或删除索引、跟踪哪些节点是集群的一部分以及决定将哪些分片分配给哪些节点。对于集群健康来说,拥有一个稳定的主节点非常重要。

备选主节点(Master-eligible node)

指有资格被选为主节点的节点,任何符合主节点条件的节点(默认情况下为所有节点)都可以通过主选择过程被选为主节点。
默认情况下,所有节点都是数据节点,也都是备选主节点,对于小型集群来说非常方便。由于数据节点处理索引和搜索数据的请求都是 I/O、内存和 CPU 密集型工作,可能对节点的资源造成压力。随着集群的增长,为了确保主节点稳定且不受压力,保障集群的稳定,需将主节点和数据节点分离。

专用主节点(Dedicated Master Node)

指 Elasticsearch 集群中,设置了只能作为主节点的节点。

专用主节点配置建议

设置专用主节点主要是为了保障集群增大时的稳定性,建议专用主节点个数至少为3个。
专用主节点个数为1:只有1个备选主节点,discovery.zen.minimum_master_nodes 设置为1,网络发生故障时缺少备份。
专用主节点个数为2:有2个备选主节点,minimum_master_nodes 设置为1,有备份节点,但网络发生故障,在重新选主时,有发生脑裂的风险(每个备选主节点都将自己设置为主节点);minimum_master_nodes 设置为2,发生故障时,可选主节点个数达不到要求,不能选出主节点。
专用主节点个数为3:有3个备选主节点,discovery.zen.minimum_master_nodes 设置为2,网络发生故障时,丢失一个可选主节点,在重新选主时,能有效选出主节点。
其他详细说明,可参考 ES 节点说明