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*

*

*

*

相关推荐
sbjdhjd4 小时前
Redis 主从复制、哨兵高可用与 Cluster 集群部署实验手册
运维·前端·redis·云原生·开源·bootstrap·html
AOwhisky4 小时前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
小红卒5 小时前
mysql之udf提权
数据库·mysql·网络安全
Trouvaille ~5 小时前
【Redis篇】Redis 哨兵(Sentinel):高可用自动故障转移
数据库·redis·缓存·中间件·sentinel·高可用·哨兵
qfljg5 小时前
oracle 迁移到postgres
数据库·oracle
giaz14n9X6 小时前
Redis 分布式锁进阶第五十七篇
数据库·redis·分布式
剑神一笑6 小时前
Linux ls 命令深度解析:从目录遍历到颜色输出的实现原理
linux·服务器·数据库
Maynor9966 小时前
Codex API 网关迁移与流量优化实战
数据库·oracle
WyCAGy8ij7 小时前
Redis 分布式锁进阶第二篇讲解
数据库·redis·分布式
南极企鹅7 小时前
MySQL的两大支柱:undo Log&redo log
数据库·mysql·oracle