【划重点】Redis哨兵(Sentinel)模式原理

Redis Sentinel作为特殊模式的Redis服务器,负责监控、发现并处理主从服务器的故障。它通过定期发送INFO命令来监控主从状态,当主服务器主观下线后,会通过投票机制判断是否客观下线,并执行故障转移,将从服务器提升为主,原主服务器变为从,确保服务高可用。

【划重点】Redis哨兵(Sentinel)模式原理

  1. Sential本质:Sential是一个运行在特殊模式下的Redis服务器。

  2. 命令区别:Sential使用了和普通模式不同的命令表,所以Sential模式和普通Redis服务器能够使用的命令不同。

  3. 监视主服务器:启动Sential时,Sential会读入用户指定的配置文件,为每个要被监控的主服务器创建相应的实例结构,并创建连向主服务器命令连接订阅连接。其中命令连接用于向主服务器发送命令请求,订阅连接用于接收指定频道的信息。

  4. 自动发现从服务器:Sential与主服务器建立连接后,会通过向主服务器发送INFO命令来获得主服务器属下所有从服务器的地址信息,并为这些从服务器创建相应的实例结构,以及连向从服务器的命令连接订阅连接

  5. 动态监视:运行中,Sential以每十秒一次的频率向主服务器和从服务器发送INFO命令,当主服务器下线时,或者Sential正在对主服务器执行故障转移操作时,Sential发送INFO命令的频率改为每秒一次。

  6. 多个Sential间通讯:对于监视同一个主服务器和从服务器的多个Sential来说,它们会以每秒一次的频率,通过向被监视服务器的__sentinel__:hello频道发送信息来向其他Sential宣告自己的存在。每个Sential会从__sentinel__:hello频道中接收其他Sential发来的信息,并根据这些信息与其他Sential建立命令连接(注意Sential之间不会建立订阅连接)。

  7. 发现下线实例:Sential以每秒一次的频率向主服务器、从服务器、其他Sential发送PING命令,并根据实例对PING命令的回复判断实例是否在线。当一个实例在指定时间内连续返回无效回复时,Sential会将这个实例判断为主观下线

  8. 主服务器下线判断(投票机制):当Sential判断一个主服务器主观下线时,会向其他Sential进行询问,确认其他Sential是否认为这个主服务器进入主观下线状态。当足够多的Sential一致认为这个主服务器进入主观下线状态后,Sential将主服务器标记为客观下线,并发起一次针对主服务器的故障转移。

  9. 主服务器故障转移分三步:

    (1)挑选一台从服务器,将其转换为新的主服务器。

    (2)将其他从服务器改为新主服务器的从节点。

    (3)将已下线的旧主服务器设置为新主服务器的从节点。

主观下线:我自己认为它下线了。

客观下线:大家公认它下线了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值