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*

*

*

*

相关推荐
山峰哥9 分钟前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
较劲男子汉21 分钟前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
java搬砖工-苤-初心不变26 分钟前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
山岚的运维笔记2 小时前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
roman_日积跬步-终至千里3 小时前
【LangGraph4j】LangGraph4j 核心概念与图编排原理
java·服务器·数据库
汇智信科3 小时前
打破信息孤岛,重构企业效率:汇智信科企业信息系统一体化运营平台
数据库·重构
野犬寒鸦4 小时前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
indexsunny4 小时前
互联网大厂Java面试实战:Spring Boot微服务在电商场景中的应用与挑战
java·spring boot·redis·微服务·kafka·spring security·电商
晚霞的不甘5 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
市场部需要一个软件开发岗位5 小时前
JAVA开发常见安全问题:纵向越权
java·数据库·安全