面试题答案
一键面试主节点故障转移原理
- 选举机制:Elasticsearch 使用基于 Quorum 的选举算法。当主节点故障时,符合选举条件的候选节点(通常是具有
master eligible
角色的节点)开始参与选举。候选节点之间通过互相发送ping
消息来确定彼此的存活状态。 - 法定人数:要成为新的主节点,候选节点必须获得超过半数以上具有选举权节点的投票。例如,若集群中有 5 个具有选举权的节点,那么至少需要 3 个节点投票支持,该候选节点才能当选为主节点。
- 状态同步:新当选的主节点会从其他节点同步集群状态信息,确保对集群中所有索引、分片等信息的一致性掌握,之后开始承担主节点职责,如管理索引创建、删除,分配分片等任务。
数据节点故障转移原理
- 分片副本机制:每个主分片都有对应的副本分片。当数据节点故障,其上承载的主分片不可用时,Elasticsearch 会将对应的副本分片提升为主分片。例如,原本分片 1 的副本分片在数据节点 B,主分片在故障的数据节点 A,此时副本分片将变为新的主分片。
- 重新分配:新主节点会重新分配故障数据节点上的其他分片到集群中的其他可用数据节点。它会基于集群的负载均衡策略、节点的剩余资源等因素,选择合适的数据节点来承载这些分片,以保证集群的数据完整性和性能。