面试题答案
一键面试- 检测异常
- 节点心跳机制:ElasticSearch 集群中节点之间通过定期发送心跳包来维持连接状态。Master 节点会向其他节点发送心跳,其他节点也会向 Master 发送心跳。当网络异常导致 Master 节点心跳无法正常接收时,从节点可以在连续几次心跳周期内未收到 Master 心跳后,初步判断 Master 节点网络异常。
- 选举状态检测:如果 Master 节点网络异常,集群可能触发新一轮的 Master 选举。从节点可以观察选举状态的变化,如果在短时间内检测到选举相关的操作(如收到选举请求等),结合心跳异常情况,可进一步确认 Master 节点出现网络问题。
- 初步响应措施
- 切换读写操作:在确认 Master 节点网络异常后,为保障数据读写基本可用,集群中的数据节点(Data Node)可以继续处理读请求,因为数据节点存储了实际的数据分片。对于写请求,在没有 Master 节点协调的情况下,临时将写操作限制为只在本地分片上进行一些简单的缓存或记录,等待 Master 节点恢复网络连接后再进行统一的协调和同步。
- 备用 Master 选举:快速启动备用 Master 选举流程,从候选 Master 节点(具有
master eligible
属性的节点)中选举出新的 Master 节点。新的 Master 节点选举出来后,会重新协调集群状态,包括分配分片、处理副本等,使得集群尽快恢复到正常的读写状态。