Redis Sentinel 哨兵模式

Sentinel 哨兵模式
Redis Sentinel 官网
Redis 的 Sentinel 文档 -- Redis中国用户组(CRUG)
Sentinel Redis 命令参考(红色)

Sentinel 通过监控的方式获取主机的工作状态是否正常,当主机发生故障时, Sentinel 会自动进行 Failover(即故障转移),并将其监控的从机提升主服务器(master),从而保证了系统的高可用性。

哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。

哨兵模式是一种自动选择老大的模式,即在老大宕机之后,哨兵模式会根据哨兵们的内部投票,自动的重新选出一个新的老大。
注意:配置sentinel之前需先建立master-slave replication

哨兵的作用

● 监控

不断的检查master和slave是否正常运行

master存活检测、master与slave运行情况检测

● 通知(提醒)

当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知

● 自动故障转移

断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址
注意:哨兵也是一台redis服务器,只是不提供数据服务,通常哨兵配置数量为单数

哨兵工作原理【其实就是主从同步】
阶段一:监控阶段 ,用于同步各个节点的状态信息,sentinel会向master、slave以及其他sentinel获取状态,sentinel直接会组件"对应频道",大家一起发布消息、订阅消息,收消息,同步信息等;
阶段二:通知 ,保持联通;
阶段三:故障转移 ,发现问题,竞选负责人,优选新master,新master上任,其他slave切换master,原master座位slave故障回复后连接;

● 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。

● 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

● 一般情况下,至少会需要3~5个哨兵对redis 进行监控,我们可以通过修改端口启动多个sentinel 服务。

总结

● 将宕机的master下线 ● 谁来确认master宕机了

● 找一个slave作为master ● 找一个主?怎么找法?

● 通知所有的slave连接新的master ● 修改配置后,原始的主恢复了怎么办?

● 启动新的master与slave

● 全量复制*N+部分复制*N

第一阶段:监控阶段

第二阶段:通知阶段

1、*

*

2*

*

3*

*

4*

*

5*

*

6*

*

第三阶段

1、*

*

2*

*

3*

*

4*

*

5*

*

6*

*

7*

*

8*

*

9*

*

10*

*

*

11、*

*

12*

*

13*

*

14*

*

15*

*

16*

*

17*

18*

*

19*

*

20*

*

21、*

*

22*

*

23*

*

24*

*

25*

*

26*

*

27*

*

28*

*

29*

*

30*

*

31、*

*

32*

*

*

*

相关推荐
lllsure1 分钟前
MySQL总结
数据库·mysql
weixin_5318042441 分钟前
SQL优化技巧(如查询优化、索引优化)。分布式系统的基本概念及挑战(如数据一致性、服务发现、负载均衡)
数据库·sql·服务发现
一 乐1 小时前
考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
java·数据库·学习·考研·微信·小程序·源码
一 乐1 小时前
租拼车平台|小区租拼车管理|基于java的小区租拼车管理信息系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·微信·notepad++·拼车
BillDev2 小时前
Oracle创建用户报错-ORA-65096: invalid common user or role name
数据库·oracle
szial2 小时前
深入理解SQL模糊查询中的特殊字符处理——以DB2为例
数据库·sql
jxxchallenger2 小时前
踩坑spring cloud gateway /actuator/gateway/refresh不生效
java·数据库·gateway
肥or胖2 小时前
【MySQL】索引
linux·数据库·mysql
Kiwi233332 小时前
产品经理-需求分析
数据库·产品经理·需求分析
读心悦3 小时前
修改 MySQL 数据库中的唯一键
数据库·mysql