Redis哨兵Sentinel

Sentinel 是Redis的高可用性解决方案:由一个或多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器以及它们的下属从服务器。

1、Sentinel基本监视原理

如下图显示,Sentinel系统监视了一个主服务器server1和它的三个从服务器server2、3、4.
在这里插入图片描述

当server1因为某种情况下线时,Sentinel系统会对server1做出 故障转移 处理,将server1的三个从服务器之一作为新的主服务器,并将其他从服务器当作新的主服务器的slave。

在这里插入图片描述
此时,Sentinel系统还会继续监视之前的server1,当server1恢复工作状态之后,Sentinel系统会把它设置为server2的从服务器。
在这里插入图片描述

2、Sentinel的启动与使用

当Sentinel启动之后,就不能使用一般的Redis服务器命令了,只能使用这7个sentinel命令:ping、sentinel、info、subscribe、unsubscribe、psubscribe和punsubscribe。

命令连接 监视
Sentinel会与服务器建立命令连接,使Sentinel可以向服务器发送指令。
创建命令连接之后:
1、Sentinel默认以10秒一次的频率向与其连接的主从服务器 通过命令连接 发送INFO命令,通过分析INFO命令的回复来获取服务器当前的信息和拓扑结构。
2、Sentinel默认以2秒一次的频率 通过 命令连接 向特定频道发送命令(以发布-订阅方式),服务器会通过 订阅连接 向频道返回信息,这样通过频道的方式会使所有订阅了该频道的其他sentinel也接收到相关信息。
订阅连接
Sentinel除了与连接的服务器建立 命令连接 之外,还会建立 订阅连接,多个sentinel可以和同一个服务器建立 订阅连接,这样当一个sentinel通过频道向服务器发送一条消息的时候,其他sentinel都可以发现,这种方式可以加强sentinel之间的交流。

主观下线
默认情况下,Sentinel以每秒一次的频率向所有与它建立连接的实例(包括主、从服务器、其他Sentinel)发送ping命令,并根据回复判断实例是否在线。如果不在线,就认定该实例为主观下线状态(仅这个Sentinel的判定)。

可观下线
当一个Sentinel判定一个主服务器为主观下线之后(但这只是它一个人的判断),为了确认这个主服务器是否真的下线,它会询问其他监视该主服务器的Sentinel,如果这个Sentinel从其他Sentinel那里得到了足够数量的证据证明该服务器下线,就判定该服务器为客观下线。

选举领头Sentinel
当一个主服务器被判断为客观下线时,监视该服务器的所有Sentinel会进行协商,选举出一个领头Sentinel,让该领头来对下线的主服务器进行故障转移操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值