面试题答案
一键面试故障检测
- 心跳机制:NDB存储引擎中,节点之间通过心跳消息互相监控状态。每个节点定期向其他节点发送心跳包,接收方若在一定时间(心跳超时时间)内未收到来自某个节点的心跳包,就初步判定该节点可能出现故障。
- Group Communication System(GCS):它负责管理集群成员关系和故障检测。当一个节点疑似故障时,GCS会发起一个“成员资格改变”的流程,向其他所有节点确认该节点是否真的故障。其他节点根据自身与疑似故障节点的心跳情况进行反馈,若多数节点都确认该节点故障,GCS正式判定该节点故障,并通知整个集群。
自动恢复
- 数据冗余与复制:NDB存储引擎采用数据分片和复制技术,数据在多个节点上有副本。当某个节点故障时,集群可以从其他拥有相同数据副本的节点继续提供服务,保证数据的可用性。例如,假设数据A在节点1、节点2和节点3上都有副本,若节点2故障,节点1和节点3可以继续处理对数据A的请求。
- 故障节点重启:当故障节点修复并重新加入集群时,它需要与其他节点进行同步。首先,它会向GCS表明自己希望重新加入集群,GCS协调其他节点向该节点提供其故障期间错过的所有数据更新信息,包括数据变化和元数据变化等。通过这种方式,故障节点重新同步数据,恢复到与集群其他节点一致的状态,重新承担起数据存储和处理的职责,从而实现集群的自动恢复。