面试题答案
一键面试网络分区
- 原因:副本集成员间网络出现分割,不同分区内成员会各自认为自己是主节点。比如,两个分区都认为自己包含了大多数成员,从而发起选举竞争主节点角色,引发选举冲突。
时钟差异
- 原因:MongoDB选举依赖节点的时间戳,若节点间时钟存在较大差异,可能导致错误判断节点状态和数据版本。例如,时钟超前的节点可能被认为拥有更新数据而发起选举,与其他节点产生选举冲突。
配置文件不一致
- 原因:副本集配置文件定义了成员角色、优先级等关键信息。若成员间配置文件不一致,如某个节点认为自己优先级高应成为主节点,但其他节点配置认知不同,就会因对选举规则理解差异引发选举冲突。
成员状态不稳定
- 原因:节点频繁故障、重启或网络不稳定导致状态频繁变化。例如,一个节点不断在可选举和不可选举状态切换,会多次触发选举,干扰正常选举流程,与其他节点竞争主节点,引发冲突。