首页 > 其他 > 详细

《redis高可用》之sentinel

时间:2020-12-18 23:59:43      阅读:38      评论:0      收藏:0      [点我收藏+]

启动sentinel

  • 1)初始化服务器
  • 2)将普通redis服务器使用的代码替换成sentinel专用代码
  • 3)初始化sentinel状态
  • 4)初始化sentinel的监视 主服务列表
  • 5)创建连向主服务器的网络连接

 

1)初始化服务器

2)将普通redis服务器使用的代码替换成sentinel专用代码

sentinel只是运行在特殊模式下的redis服务器,它使用了和普通模式不同的命令表,所以sentinel模式能够使用的命令和普通redis服务器使用的命令不同

 

3)初始化sentinel状态

4)初始化sentinel的监视 主服务列表

sentinel会读入用户指定的配置文件,为每个要被监视的主服务器创建相应的实例结构

 

5)创建连向主服务器的网络连接

对于每个被sentinel监视的主服务器来说,sentinel会创建两个连向主服务器的异步网络连接

  1)命令连接,这个连接专门用于向主服务器发送命令,并接受命令回复。

  2)订阅连接,这个连接专门用于订阅主服务器的_sentinel_:hello频道

 

6)sentinel会向主服务器发送INFO命令来获取主服务器下所有从服务器,

  并为这些从服务器创建响应的实例结构,以及连向这些从服务器的命令连接和订阅连接

 

7)一般情况下,sentinel会每十秒一次的频率向被监视的主服务器和从服务器发送INFO命令

  当主服务器处于下线状态,或者sentinel正在对主服务器进行故障转移操作时,sentinel向从服务器发送INFO命令的频率会改为每秒一次

 

8)监视同一个主服务器和从服务器的多个sentinel,它们会以两秒一次的频率,通过向被监视的服务器的_sentinel_:hello频道发送消息来向其他sentinel宣告自己的存在。

  每个sentinel也会从_sentinel_:hello频道接受其他sentinel发来的消息,并根据这些信息来为其他sentinel创建相应的实例结构,以及命令连接

 

9)sentinel以每秒一次的频率向实例(主服务器、从服务器、sentinel)发送PING命令,判断实例是否在线。

  当一个实例在指定的时长连续向sentinel发送无效回复时,sentinel会将这个实例判断为主观下线

 

10)当sentinel将一个主服务器判断为主观下线时,他会先向同样监视这个主服务器的其他sentinel进行询问,看他们是否同意这个主服务器已经进入主观下线状态。

 

11)当sentinel收集到足够多的主观下线投票时,他会将主服务器判断为客观下线,并发起一次针对主服务器的故障转移操作。

 

《redis高可用》之sentinel

原文:https://www.cnblogs.com/zrzct/p/14157538.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!