每日一题-Redis 哨兵机制

假设有一个 Redis 集群,是“一主四从”,同时配置了包含 5 个哨兵实例的集群, quorum 值设为 2。在运行过程中,如果有 3 个哨兵实例都发生故障了,此时,Redis 主 库如果有故障,还能正确地判断主库“客观下线”吗?如果可以的话,还能进行主从库自 动切换吗?

已邀请:

空心菜 - 牛逼你来

正常法定是2,理论正常工作吧,可以判断下线通知和主从切换,实际跟代码逻辑有关,大佬可以公布答案了。

peanut - 程序员一个

关于这个问题是可以实际搭建环境测试一下:


1、哨兵集群可以判定主库“主观下线”。由于quorum=2,所以当一个哨兵判断主库“主观下线”后,询问另外一个哨兵后也会得到同样的结果,2个哨兵都判定“主观下线”,达到了quorum的值,因此,哨兵集群可以判定主库为“客观下线”。


2、但哨兵不能完成主从切换。哨兵标记主库“客观下线后”,在选举“哨兵领导者”时,一个哨兵必须拿到超过多数的选票(5/2+1=3票)。但目前只有2个哨兵活着,无论怎么投票,一个哨兵最多只能拿到2票,永远无法达到多数选票的结果。

要回复问题请先登录注册