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,来负责主从切换的工作。

0
0

InCowboy

2023-11-17

这里的Leader的Sentinel的选举,并不是依赖quorum的数量,而是直接根据超过半数的原理去选举的呢,可以看一下Raft算法哈

0
0

高级Redis进阶课 解决Redis实际问题+掌握Redis6.x特性

以项目整合Redis各种场景,从此轻松应对各类Redis难题

934 学习 · 353 问题

查看课程