面试题答案
一键面试网络延迟
- 原因:网络延迟较高时,Sentinel 之间交换心跳信息和投票信息会出现较大延迟。例如,一个 Sentinel 发出的选举投票消息,可能要很久才能被其他 Sentinel 收到。这就导致选举时间变长,而且在延迟期间,Sentinel 可能会因长时间未收到其他节点信息而误判节点状态,影响选举的准确性。
网络丢包
- 原因:丢包可能导致 Sentinel 之间关键的选举信息丢失。比如某个 Sentinel 发出的选举提议或者投票信息在网络传输过程中丢失,那么其他 Sentinel 可能收不到完整的选举信息,无法进行正确的投票决策,进而阻碍选举流程正常推进,甚至可能导致选举失败或产生错误的领头 Sentinel。
网络分区
- 原因:网络分区将整个 Sentinel 集群分割成多个无法相互通信的子网。不同子网内的 Sentinel 可能各自进行选举,产生多个“领头 Sentinel”,破坏了集群的一致性。例如,原本一个集群有 5 个 Sentinel,网络分区后分成两个子网,一个子网有 3 个 Sentinel,另一个有 2 个 Sentinel,两个子网可能各自选出领头 Sentinel,使集群出现混乱,影响选举性能和整个系统的可用性。