Redis之Sentinel
2019-11-05 11:10
183 查看
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
Redis Sentinel的基本概念
- Sentinel是对Redis高可用的实现方案,Sentinel是一个管理多个Redis实例的工具,他可以实现对Redis的监控,通知,自动故障转移。
Redis Sentinel架构
Sentinel的主要功能
Sentinel
的主要功能包括 主节点存活检测、主从运行情况检测、自动故障转移(failover
)、主从切换。Redis
的Sentinel
最小配置是 一主一从- 监控:Sentinel会不断检查主从服务器的运行状态
- 通知:当被监控的某个Redis服务出现问题的时候,Sentinel通过Api脚本向管理员或者其他的应用程序发送通知
- 自动故障转移:当主节点不能正常工作时,它会自动的将与失效主节点是主从关系的一个从节点升级为主节点,并将其他的节点都指向新的主节点
- 提供配置者:在Redis Sentinel模式下,客户端应用在初始化时连接的是Sentinel节点集合,从中获取主节点的信息
主观下线和客观下线
- 默认情况下,每个Sentinel节点会以每秒一次的频率向其他的Sentinel节点和redis节点发出ping命令,通过回复来判断其他节点健康状况,类似于心跳机制。
- 主观下线:适用于主节点和从节点,如果在
down-after-milliseconds
毫秒内,Sentinel
没有收到 目标节点 的有效回复,则会判定 该节点 为 主观下线。
Redis Sentinel的工作原理
每个 Sentinel
节点都需要 定期执行 以下任务:
- 每个
Sentinel
以 每秒钟 一次的频率,向它所知的 主服务器、从服务器 以及其他Sentinel
实例 发送一个PING
命令 - 如果一个 实例(
instance
)距离 最后一次 有效回复PING
命令的时间超过down-after-milliseconds
所指定的值,那么这个实例会被Sentinel
标记为 主观下线 - 如果一个 主服务器 被标记为 主观下线,那么正在 监视 这个 主服务器 的所有
Sentinel
节点,要以 每秒一次 的频率确认 主服务器 的确进入了 主观下线 状态。 - 如果一个 主服务器 被标记为 主观下线,并且有 足够数量 的
Sentinel
(至少要达到 配置文件 指定的数量)在指定的 时间范围 内同意这一判断,那么这个 主服务器 被标记为 客观下线。 -
在一般情况下, 每个
Sentinel
会以每10
秒一次的频率,向它已知的所有 主服务器 和 从服务器 发送INFO
命令。当一个 主服务器 被Sentinel
标记为 客观下线 时,Sentinel
向 下线主服务器 的所有 从服务器 发送INFO
命令的频率,会从10
秒一次改为 每秒一次 Sentinel
和其他Sentinel
协商 主节点 的状态,如果 主节点 处于SDOWN
状态,则投票自动选出新的 主节点。将剩余的 从节点 指向 新的主节点 进行 数据复制。- 当没有足够数量的
Sentinel
同意 主服务器 下线时, 主服务器 的 客观下线状态 就会被移除。当 主服务器 重新向Sentinel
的PING
命令返回 有效回复 时,主服务器 的 主观下线状态 就会被移除 -
注意:一个有效的
PING
回复可以是:+PONG
、-LOADING
或者-MASTERDOWN
。如果 服务器 返回除以上三种回复之外的其他回复,又或者在 指定时间 内没有回复PING
命令, 那么Sentinel
认为服务器返回的回复 无效(non-valid
)。
参考文献:https://juejin.im/post/5b7d226a6fb9a01a1e01ff64#heading-11
相关文章推荐
- 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- Redis Sentinel安装与部署,实现redis的高可用
- redis sentinel 集群监控 配置
- redis的Sentinel模式(哨兵模式)的windows安装
- 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- Redis采用sentinel哨兵模式进行master-slave复制,read-write分离
- redis的主从监控器—Sentinel
- Redis Sentinel机制与用法(二)
- redis可用性提升(哨兵sentinel)配置示例
- Redis Sentinel初体验
- Redis中sentinel集群的搭建和Jedis测试 图文教程[一]
- 玩转Redis集群之Sentinel
- 关于Redis Sentinel网络问题的脑裂
- Redis哨兵机制(Sentinel)
- Redis Sentinel 集群Failover解决方案
- Redis Sentinel集群方案--单机测试
- Redis采用Sentinel实现主从切换
- [redis集群] twemproxy + redis + sentinel
- Redis Sentinel高可用配置及C#访问
- redis 系列24 哨兵Sentinel (中)