面试题答案
一键面试1. discovery.zen.minimum_master_nodes
配置项
- 作用:该配置项设置了为了形成一个可用的集群,需要看到的具有 master 资格节点的最小数量。它是防止脑裂(split brain)问题的关键配置。如果节点看到的具有 master 资格的节点数量小于这个值,它不会尝试选举出一个 master 节点。
- 示例:一般建议设置为
(master_eligible_nodes / 2) + 1
,例如有 3 个具有 master 资格的节点,此值应设为(3 / 2) + 1 = 2
。
2. discovery.zen.ping_timeout
配置项
- 作用:定义了节点在等待来自其他节点的 ping 响应的超时时间。如果在这个时间内没有收到响应,节点会认为目标节点不可达。合适的设置可以避免由于网络延迟等原因导致的误判,影响 master 选举。
- 示例:默认值是 3s,可根据网络状况调整,比如网络延迟较高的环境可设为 5s 或更高。
3. discovery.zen.ping_retries
配置项
- 作用:设置在宣布节点不可达之前,尝试 ping 该节点的次数。这有助于应对临时的网络故障,避免因为短暂的网络波动就错误地将节点标记为不可用,影响 master 选举和集群状态。
- 示例:默认值为 3,可根据实际网络稳定性进行调整,如果网络经常出现短暂波动,可适当增加该值,如设为 5。
4. 选举策略相关设置(基于上述配置间接实现)
- 基于法定人数的选举策略:通过
discovery.zen.minimum_master_nodes
配置实现法定人数选举策略。只有当具有 master 资格的节点中,有足够数量(达到discovery.zen.minimum_master_nodes
设置的值)的节点互相通信并认可某个节点为 master 时,选举才会成功。这种策略保证了集群在选举 master 时的健壮性,避免单个节点或少数节点错误地自认为是 master,从而导致脑裂问题。