暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

哨兵工作原理

DevOps架构实战 2022-06-28
701

哨兵工作原理

  在主从模式下,master节点负责写请求,然后异步同步给slave节点,从节点负责处理读请求。如果master宕机了,需要手动将从节点晋升为主节点,并且还要切换客户端的连接数据源。这就无法达到高可用,而通过哨兵模式就可以解决这一问题。

  哨兵模式是Redis的高可用方式,哨兵节点是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点挂掉时,哨兵会第一时间感知到,并且在slave节点中重新选出来一个新的master,然后将新的master信息通知给client端,从而实现高可用。这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息。

1、定时任务

sentinel内部有3个定时任务,分别是:

1秒每个sentinel对其它sentinelredis节点执行ping操作

2秒每个sentinel通过master节点的channel交换信息(publish/subscribe

10秒每个sentinel会对masterslave执行info命令

2、主观下线

所谓主观下线(subjectively Down 简称SDOWN)指的是单个sentinel实例对服务器做出的下线判断,即单个sentinel认为某个服务下线(有可能是接收不到订阅,之间的网络不通等等原因)

3、客观下线(objectively Down 简称ODOWN)指的是多个sentinel实列在对同一个服务器做出SDOWN判断,并且通过命令互相交流之后,得出的服务器下线判断,然后开启failover

4、仲裁

仲裁是指配置文件 中的quorum选项

quorum的值一般设置为sentinel个数的二分之一加一,例3sentinel就设置为2

5、哨兵模式工作原理

(1)每秒ping

(2)有效回复ping命令的时间超过配置文件  down-after-milliseconds 选项所指定的值,被认定为主观下线

(3)确认主观下线状态

(4)满足条件,客观下线

(5)投票选举主节点,从节点复制数据

(6)当主节点标记为客观下线时,INFO命令触发由10s一次改为1s一次,master重新向sentinelping命令返回有效回复,master的主观下线状态就会被移除。


如果本文对你有帮助的话,欢迎点赞&在看&转发,这对我继续分享&创作优质文章非常重要。感谢🙏🏻

文章转载自DevOps架构实战,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论