sentinel选举的疑问
来源:7-4 哨兵工作原理详解
慕斯卡0991186
2023-08-27
网络上说,如果判定主节点客观下线,那么会先选举一个sentinel作为leader负责后续的故障迁移等操作。
如果是这样的,那么这个作为leader的sentinel就是那个最早发现主节点主观下线的sentinel吗?
如果是这个逻辑,那么sentinel投票选举新的leader逻辑,与新的redis从节点提升为主节点的逻辑也是靠quorum半数逻辑吗?
2回答
-
王加武
2023-11-26
Leader不是最早发现主节点下线的sentinel。
你需要区分 "主观下线"、"客观下线"、"选新主库"、"选Leader"这几个的概念,不要混淆。
主节点是否下线,一个sentinel主观判断是不够的,甚至有可能是误判,所以这时候就需要"客观下线",客观下线指的是包括当前sentinel在内的quorum个sentinel节点都认为这个主库已经"主观下线了",当前sentinel才会将主库标记为"客观下线",也就是真正意义上的下线。
客观下线判断完毕后,需要在所有从库中选出一个新的主库,这个选主库的过程会经过优先级判断、偏移量判断、运行ID判断等流程,最终选择出适合担任主库的从库作为新的主库的。
这时候主库是选出来了,但是哪个sentinel来执行主从切换呢?然后就又开始选举了,在现有的sentile中选一个Leader来负责主从切换这个工作。
所有的sentinel都有资格成为Leader,但是最终只能有一个sentinel成为Leader,所以一开始投票选举,当某一个sentinel被选举成为Leader的数量超过了整个sentinel的半数,那么这个sentinel就会成为Leader,来负责主从切换的工作。
00 -
InCowboy
2023-11-17
这里的Leader的Sentinel的选举,并不是依赖quorum的数量,而是直接根据超过半数的原理去选举的呢,可以看一下Raft算法哈
00
相似问题