MST

星途 面试题库

面试题:ElasticSearch 中确立 Master 节点的主要流程是什么

请详细描述 ElasticSearch 集群中一个节点是如何确立为 Master 节点的,包括涉及到的选举机制、判断条件等。
44.6万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

选举机制

  1. 基于Zen Discovery机制:Elasticsearch默认使用Zen Discovery机制来进行节点发现和Master选举。在集群启动时,节点之间通过广播(默认使用UDP,也可配置为单播)的方式来发现彼此。
  2. 候选节点资格:只有配置为master eligiblenode.master: true)的节点才有资格参与Master选举。在一个新集群启动时,所有符合master eligible条件的节点都有可能成为Master节点。

判断条件

  1. 节点ID:每个节点都有一个唯一的节点ID。在选举过程中,节点ID作为重要的标识。
  2. 版本号:节点会记录集群状态的版本号。当一个节点认为自己可以成为Master时,它会将自己持有的集群状态版本号与其他节点进行比较。版本号越高,说明该节点的状态越新。
  3. 选举投票
    • 每个master eligible节点在启动时,会向集群中的其他节点发送选举请求。
    • 收到选举请求的节点会根据一定规则进行投票。如果一个节点认为请求节点的条件更优(如节点ID、版本号等),就会投赞成票。
    • 当一个节点获得超过半数master eligible节点的赞成票时,它就会被选举为Master节点。例如,若集群中有5个master eligible节点,那么至少需要获得3票才能成为Master。
  4. 稳定状态:一旦一个节点被选举为Master,它会负责管理集群状态,包括节点加入/离开集群、索引创建/删除等操作。其他节点会向Master节点同步状态信息,以保持整个集群状态的一致性。如果Master节点发生故障,集群会重新进行选举,以选出新的Master节点来维持集群的正常运行。