面试题答案
一键面试主要组件及工作原理
- Zen Discovery
- 原理:Elasticsearch使用Zen Discovery模块来发现集群中的节点,并选举主节点。在节点失效检测方面,它通过定期发送ping请求(通常每1秒)到集群中的其他节点,节点收到ping请求后回复pong响应。如果在一定时间内(默认3秒)没有收到某个节点的pong响应,则认为该节点可能失效。这是基于心跳机制来检测节点的存活状态,确保对节点失效情况有及时感知。
- Failure Detector
- 原理:Failure Detector基于Zen Discovery的检测结果进一步确认节点是否真正失效。它会综合考虑多个因素,如连续多次未收到响应、网络抖动等情况,避免因短暂网络问题误判节点失效。当Failure Detector确定一个节点失效后,会通知集群中的其他节点,以便进行相应的处理,如重新分配分片等操作,保障集群的正常运行和数据的可用性。