Elasticsearch 的 Master 节点与候选 Master 节点有什么区别?
Elasticsearch 的 Master 节点与候选 Master 节点有什么区别?
回答重点
在 Elasticsearch 中,Master 节点与候选 Master 节点的主要区别在于角色和功能。Master 节点负责管理整个集群的状态和配置,比如创建索引、删除索引、跟踪节点的加入和离开等;而候选 Master 节点则是有资格成为 Master 节点的节点,它们会参与 Master 节点的选举,但并不是实际的 Master。
1)Master 节点:管理集群的全局状态和配置。
2)候选 Master 节点:有资格作为 Master,但并不一定实际成为 Master。
扩展知识
在 Elasticsearch 中,Master 节点和候选 Master 节点都扮演着重要的角色:
1)Master 节点的职责:
- 管理元数据:包括索引元数据、节点状态等。
- 执行集群级别的操作:如创建、删除索引以及管理映射和别名。
- 维护集群健康状态:确保分片分配,追踪节点的加入和离开,重新分配分片以确保数据的高可用性。
- 协调集群级别的变更:比如在节点出现问题或新增节点时重构集群的拓扑。
2)候选 Master 节点的特性:
- 参与选举:当现任 Master 节点出现故障时,候选 Master 节点会参与新 Master 节点的选举过程,确保集群可以尽快恢复正常状态。
- 资格条件:在节点配置中设置
node.master: true表示这个节点是候选 Master 节点。默认情况下,所有节点都是候选 Master 节点,但在大型集群中,通常通过配置来限制。
3)如何选举 Master 节点:
- RAFT 共识算法:Elasticsearch 使用一种基于影响因子的机制,但非常类似于 RAFT 共识算法进行选举,确保在最短时间内选出新 Master 节点来维持集群的正常运行。
- 最小投票数:为了确保容错性,选举需要有多数节点参与。当候选 Master 节点数量过少时,可能导致无法选出 Master,集群会进入红色状态。因此,通常建议最少有三台 Master 候选节点。
4)实际部署建议:
- 分离 Master 角色:在大规模集群中,建议独立部署 Master 节点,减少数据节点的负载,确保 Master 节点可以快速响应和处理事务。
- 高可用性配置:规则上建议配置三个 Master 节点,这样即便一个节点失效,其他两个节点依然可以选出新 Master。
Comments