MST

星途 面试题库

面试题:ElasticSearch选举算法基础及常见容错场景

请简述ElasticSearch选举算法的基本原理,并举例说明在节点网络短暂中断这一常见容错场景下,选举算法是如何保证集群正常运行的?
24.8万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

ElasticSearch选举算法基本原理

  1. 基于Bully算法改进:ElasticSearch选举算法类似于Bully算法,在集群中每个节点都有机会成为主节点。节点通过ping其他节点来判断其存活状态。
  2. 节点角色与状态:集群中有主节点(Master-eligible)、数据节点(Data)等角色。主节点负责集群的元数据管理,如索引的创建、删除等操作。在选举过程中,Master-eligible节点竞争成为主节点。
  3. 选举依据:每个Master-eligible节点都有一个唯一的ID和版本号。选举时,节点会比较自身与其他节点的ID和版本号,版本号高的优先,如果版本号相同则ID大的优先成为主节点。

节点网络短暂中断场景下保证集群正常运行的方式

  1. 故障检测:当节点网络短暂中断时,其他节点在一定时间内(如默认的ping_timeout时间)无法ping通该节点,就会认为该节点发生故障。
  2. 重新选举:假设主节点发生网络短暂中断,其他Master-eligible节点检测到主节点失联后,会发起重新选举。例如,集群中有节点A、B、C三个Master-eligible节点,当前A是主节点,若A网络短暂中断,B和C发现无法ping通A后,B和C开始竞争选举。假设B的版本号高于C,那么B会成为新的主节点,继续管理集群的元数据,保证集群正常运行。
  3. 恢复处理:当网络恢复,原主节点A重新上线,发现集群已有新的主节点B,A会自动调整为从节点角色,加入集群,接受主节点B的管理,集群恢复到正常状态,继续提供服务。