在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。
1 启动并初始化Sentinel
1 初始化服务器(运行在特殊模式下的Redis服务器)
2 使用Sentinel专用代码 (命令表不同,和普通Redis服务器的命令有所不同)
3 创建连向主服务器的命令连接和订阅连接 为什么有两个连接
sentinel之间不会创建订阅连接
2 获取主服务器信息
3 获取从服务器信息
4 向主服务器和从服务器发送信息
5 接受来自主服务器和从服务器的频道信息
每个Sentinel也会从__sentinel_:hello频道中接受其他sentinel发来的信息,
6 检测主观下线状态
(一定时间内无正确返回)
7 检测主观下线状态
(询问其他Sentine,是否也认为主服务器已下线)
8 选举领头Sentinel 根据访问速度?不懂
9 故障转移
选出新的主服务器
修改从服务器的复制目标
将旧的主服务器变为从服务器