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*

*

*

*

相关推荐
努力学习的小廉22 分钟前
初识MYSQL —— 基本查询
数据库·mysql·1024程序员节
许泽宇的技术分享31 分钟前
让数据库“听懂“人话:Text2Sql.Net 深度技术解析
数据库·.net
珊珊而川1 小时前
MAC-SQL 算法一
数据库·sql·oracle
听风吟丶2 小时前
深入解析 Spring Boot 自动配置:原理、实践与进阶
java·数据库·sql
风语者日志2 小时前
[LitCTF 2023]这是什么?SQL !注一下 !
android·数据库·sql
lang201509282 小时前
Spring Boot 核心技巧与实战指南
java·数据库·spring boot
呆呆小金人3 小时前
SQL视图:虚拟表的完整指南
大数据·数据库·数据仓库·sql·数据库开发·etl·etl工程师
笨手笨脚の3 小时前
Mysql 读书笔记
数据库·mysql·事务·索引·orderby·自增主键
码力引擎3 小时前
【零基础学MySQL】第四章:DDL详解
数据库·mysql·1024程序员节
程序新视界3 小时前
MySQL的隔离级别及其工作原理详解
数据库·后端·mysql