面试题答案
一键面试主节点角色
- 数据写入:主节点是集群中唯一能够接受写操作的节点。所有的插入、更新和删除操作都在主节点上执行。
- 数据同步发起:主节点记录所有的写操作日志(oplog),并将这些日志同步给从节点,以保证从节点的数据与主节点一致。
从节点角色
- 数据复制:从节点通过复制主节点的oplog来保持与主节点数据的同步。它们定期从主节点拉取oplog,并应用这些操作到自己的数据副本上。
- 读操作分担:从节点主要用于分担读操作负载。客户端可以将读请求发送到从节点,从而减轻主节点的压力。
仲裁节点角色
- 选举参与:仲裁节点不存储数据,其主要作用是在主节点故障时参与选举新的主节点。仲裁节点通过投票来决定哪个从节点将晋升为主节点。
协同完成数据追踪过程
- 正常运行时
- 主节点接受客户端的写操作,记录oplog,并将其同步给从节点。从节点持续拉取主节点的oplog并应用,保持数据副本的一致性。客户端的读请求可以发送到从节点,减轻主节点压力。
- 主节点故障时
- 当主节点发生故障,从节点会检测到与主节点的连接中断。此时,仲裁节点会参与选举过程。各个从节点向仲裁节点发送选举请求,仲裁节点根据一定的选举规则(如节点优先级、数据新鲜度等)投票选出一个新的主节点。新的主节点产生后,集群恢复正常的数据读写和同步功能。