Redis -- Sentinel哨兵机制

1,Sentinel

一个运行在特殊模式下的Redis服务器,使用和普通命令不同的命令表
Sentinel(哨兵)是redis高可用的解决方案,一个或多个哨兵组成的系统可以监视任意多个主服务器以及下属的从服务器
被监视的主服务器下线时,自动将下线的主服务器下的某个从服务器升级为新的主服务器,由新主代替下线的旧主继续处理请求命令

Sentinel故障转移

1.1 启动初始化Sentinel
初始化服务器
将普通redis服务器使用的代码替换为Sentinel专用代码
初始化Sentinel状态
根据给定的配置文件,初始化Sentinel的监视主服务器列表
创建连向主服务器的网络连接
1.2 获取主服务器信息
Sentinel默认每10秒一次,向被监视的主服务器发送INFO命令,通过分析INFO命令的回复来获取主服务器当前信息
1.3 获取从服务器信息
Sentinel发现主服务器有新的从服务器,会为这个从服务器创建相应的实例结构,还会创建与从服务器的命令连接和订阅连接
1.4 发送/接收信息
发送:Sentinel默认会每两秒一次,通过 命令连接 向被监视的主服务器和从服务器发送 PUBLISH 命令
接收:Sentinel与主服务器或从服务器建立订阅连接后,就会通过 订阅连接 向服务器发送 SUBSCRIBE 命令,从服务器接收信息
1.5 下线状态
Sentinel每秒一次与所有和创建了命令连接的实例(主从服务器、其他Sentinel等)发送PING命令,并通过实例返回的PING命令回复来判断实例是否在线
1.6 故障转移
服务器被判断为客观下线时,监视这个下线主服务器的各个Sentinel会选举一个领头Sentinel对已下线的主分区执行故障转移;
	1,在已下线的主服务器的所有从服务器里,挑选一个从服务器,将其转换为主服务器
	2,将已下线的主服务器的所有从服务器改为复制新的主服务器
	3,将已下线的主服务器设置为新主的从服务器,当从新上线时就会成为新主的从服务器

参考链接:
学习《Redis设计与实现》 笔记

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页