MST

星途 面试题库

面试题:MongoDB副本集故障切换测试基础

在MongoDB副本集中进行故障切换测试时,简述主节点故障后,副本集如何选举出新的主节点?
22.3万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  1. 选举条件
    • 副本集中的节点分为不同类型,如主节点(Primary)、从节点(Secondary)和仲裁节点(Arbiter)。只有符合一定条件的从节点才有资格参与选举成为新的主节点。
    • 从节点必须满足以下条件:
      • 节点数据必须是最新的,即拥有最新的操作日志(oplog),这样可以保证新选举出的主节点不会丢失数据。
      • 节点必须与大多数节点保持连接。在MongoDB副本集中,“大多数”是指超过一半的节点。例如,一个包含5个节点的副本集,至少需要与3个节点保持连接才能参与选举。
  2. 选举过程
    • 发起选举:当主节点发生故障时,副本集中的从节点会检测到与主节点的连接中断。此时,符合选举条件的从节点会发起选举请求。
    • 投票机制:每个有选举权的节点(通常是除仲裁节点外的所有节点)会对发起选举的节点进行投票。节点会根据自身对发起选举节点的状态认知(如数据是否最新、连接是否正常等)来决定是否投票。
    • 赢得选举:获得大多数选票(超过一半的选票)的从节点会赢得选举,成为新的主节点。一旦新的主节点选举产生,副本集中的其他节点会更新它们对主节点的认知,并开始与新的主节点进行数据同步等操作,以保持副本集的数据一致性和正常运行。