Redis Sentinel

2021-02-28  本文已影响0人  DH大黄

Redis Sentinel

一:订阅与监视

Sentienl会订阅监视master节点,slave节点和其他订阅当前这个master的sentinel节点

tips:
订阅链接:专门用于订阅其他服务器的_sentinel_:hello频道。例如sentinel1向主服务的_sentinel_:hello频道发送了一条信息,其他订阅了该主服务器的_sentinel_:hello的sentinel节点(包括sentinel1都能够收到这条消息)
命令连接:用于向其他服务器发送命令

二:下线

主观下线与客观下线

Sentinel会向其他节点(主服务器、从服务器、其他的Sentinel节点)发送PING命令,其他节点会对该发送节点有两种情况的回复(每秒一次的频率)

主观下线:

在上述的命令发送持续一段时间都收到的是无效回复,此时sentinel便会判定对应节点为主观下线状态(SRI_S_DOWN)

对应的配置项见下:

// 这个时间不仅会作用于主节点,还会作用于主节点属下的从节点,其他订阅该主节点的sentinel节点
sentinel down-after-millisenconds master 50000

不同的sentinel对下线的配置时间不同,所以他们判断主观下线的情况可能也会不一样

客观下线:

当sentinel节点认为一台主服务器下线之后,会向其他的sentinel节点发送一下操作来询问其他sentinel节点是否同意该主节点下线(如果超过一定数量的sentinel节点认为该主节点已经下线,则该主节点就会被判断为客观下线 该数量与当前的sentinel节点配置的数量有关)(SRI_O_DOWN)

# ip 主服务器ip
# port 主服务器端口
# sentinel当前的配置纪元
# 此处runid可以用*,用*只是为了检测主服务器的下线状态。若不是用*,则是用于选举领头的sentinel(后续介绍)
SENTINEL is-master-down-by-addr <ip> <port> <current_epoch> <runid>
# 其他的sentinel服务器会返回一条包括三个参数的Multi Bulk回复做为该命令的回复
<down_state> 目标节点对主服务器的检查结果 1已下线,0未下线
<leader_runid> *或目标sentinel的局部领头sentinel的运行id
<leader_epoch> 目标sentinel的局部领头sentinel的配置纪元
# 当前sentinel只有在有五台sentinel节点认为该主节点主观下线的情况下,才会将当前的主节点设置为客观下线
sentinel monitor master 127.0.0.1 6379 5

如何选举领头Sentinel节点去执行下线操作

如何选举出新的主节点

主从复制的方式与上篇文章讲的相同

上一篇 下一篇

猜你喜欢

热点阅读