面试题答案
一键面试基础组件及主要功能
- 心跳(Heartbeat)
- 功能:副本集成员通过心跳机制彼此定期发送消息,以此检测其他成员的存活状态和健康状况。心跳频率通常为2秒一次,若成员在10秒内未收到其他成员的心跳,就会判定该成员不可用。这确保了副本集能实时知晓各成员的状态,及时进行故障转移等操作。
- 选举协议(Election Protocol)
- 功能:当主节点(Primary)出现故障时,副本集需要通过选举协议从剩余的从节点(Secondary)中选出新的主节点。选举过程基于多数原则,拥有大多数投票权的节点会被选为新主节点。它保证了副本集在主节点故障后能快速恢复主从结构,维持服务可用性。
- Oplog(操作日志)
- 功能:主节点会将所有写操作记录在Oplog中,从节点通过复制Oplog中的记录来保持与主节点数据的一致性。Oplog采用时间戳顺序记录操作,从节点按顺序应用这些操作,从而使副本集内各成员数据保持同步。
- 同步机制(Synchronization Mechanism)
- 功能:新加入副本集的节点或因网络问题长时间失联后重新连接的节点,需要与现有主节点或同步源进行数据同步。同步过程可能包括全量同步(Initial Sync),即新节点从同步源获取完整的数据副本;以及增量同步,通过复制Oplog来更新后续的变化,确保节点间数据的一致性。