Redis从入门到高可用分布式实践8高可用Sentinel

第8章 Redis Sentinel
本章将一步步解析Redis Sentinel的相关概念、安装部署、配置、客户端路由、原理解析,最后分析了Redis Sentinel运维中的一些问题。
8-1 sentinel-目录
主从复制高可用
架构说明
安装配置
客户端连接
实现原理
常见开发运维问题
8-2 主从复制高可用?
8-3 redis sentinel架构
8-4 redis sentinel安装与配置
8-5 redis sentinel安装演示-1
8-6 redis sentinel安装演示-2
8-7 java客户端
8-8 python客户端
8-9 实现原理-1-故障转移演练
8-10 实现原理-2.故障转移演练(客户端)
8-11 实现原理-3.故障演练(日志分析)
8-12 三个定时任务
8-13 主观下线和客观下线
8-14 领导者选举
8-15 故障转移
8-16 常见开发运维问题-目录
8-17 节点运维
8-18 高可用读写分离
8-19 本章总结

8-1 sentinel-目录

主从复制高可用
架构说明
安装配置
客户端连接
实现原理
常见开发运维问题

8-2 主从复制高可用?

为主提供一个备份
为主提供一个分流,减轻主的压力

故障转移需要手工或者写脚本来完成

主从复制问题

手动故障转移
写能力和存储能力受限

主从复制-master宕掉

Redis从入门到高可用分布式实践8高可用Sentinel
选择一个从节点成为在主节点
Redis从入门到高可用分布式实践8高可用Sentinel
有很多个点很复杂:

8-3 redis sentinel架构

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
不是从redis直接获取信息,而是从redis sentinel中获取。对于客户端来说,我不关心谁是master。
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
手动过程 变成了sentinal自动发现
Redis从入门到高可用分布式实践8高可用Sentinel
还可以监控多套master-slave

8-4 redis sentinel安装与配置

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
也要给出rdb的文件名
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

监控的主节点的名字是什么、IP是什么、几个SENTINEL认为他有问题了就可以进行故障转移
ping多少秒不通就认为它有问题
复制是并发的还是串行的
故障转移时间

8-5 redis sentinel安装演示-1

主节点的配置
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
快速生成从节点的配置
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
看主从复制的关系
Redis从入门到高可用分布式实践8高可用Sentinel

8-6 redis sentinel安装演示-2

sentinal节点的配置
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
并没有配置从节点,那么它是如何获取到的呢?解析info信息
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
发现它的配置已经发生了改变,配置重写发生的改变,发现了两个从节点,把一些默认的配置给去掉了
它会自动发现我们的slave
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
26381没有启动,发现这里都没有它的日志
Redis从入门到高可用分布式实践8高可用Sentinel
sed的时候没有改动
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
三个sentinal能互相感知到
Redis从入门到高可用分布式实践8高可用Sentinel

8-7 java客户端

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

8-8 python客户端

Redis从入门到高可用分布式实践8高可用Sentinel

8-9 实现原理-1-故障转移演练

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

8-10 实现原理-2.故障转移演练(客户端)

对master节点进行强制宕机
Redis从入门到高可用分布式实践8高可用Sentinel
方便我看故障转移的效果
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
故障转移需要时间
Redis从入门到高可用分布式实践8高可用Sentinel
发现故障已经恢复了!

但是如果你连接的是一个主从结构,你自己需要做很多手工工作,而这里使用sentinal很容易就进行了故障转移。

8-11 实现原理-3.故障演练(日志分析)

Redis从入门到高可用分布式实践8高可用Sentinel

Redis从入门到高可用分布式实践8高可用Sentinel
与master已经失联
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
7001被选成了新的master

7002也与master失联了,但是它接收到一条命令,让它去复制7001就好了
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

Redis从入门到高可用分布式实践8高可用Sentinel

关于sentinal的表现
26379的日志
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
只有一个sentnal去做这个故障转移剩下的只需要投票

8-12 三个定时任务

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
master节点上有发布订阅的频道,用于让sentinal节点进行信息交换,一个sentinal发布信息,剩下的sentinal节点都能收到,以便达成共识。

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

8-13 主观下线和客观下线

Redis从入门到高可用分布式实践8高可用Sentinel
超过30s没有收到回复,就会主观判断它坏了
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

8-14 领导者选举

Redis从入门到高可用分布式实践8高可用Sentinel
使用的是一个算法
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

8-15 故障转移

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
最早的一个jiedian

8-16 常见开发运维问题-目录

节点运维
高可用读写分离

8-17 节点运维

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

手动的故障转移,忽略了客观下线主观下线、故障转移、领导者选举
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

8-18 高可用读写分离

Redis从入门到高可用分布式实践8高可用Sentinel
如果主节点挂掉了,完成故障转移,Jedis是怎么实现的呢?

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
拿到master后,订阅消息
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
主从节点发生了切换,我就会重新完成连接池的初始化

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel

8-19 本章总结

Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel
Redis从入门到高可用分布式实践8高可用Sentinel