Redis:哨兵模式(Sentinel)原理
1. 前言
Redis主从复制模式不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。Redis哨兵模式就解决了Redis主从复制模式不具备容错和恢复的功能问题。Sentinel(哨兵)进程是用于监控redis集群中Master主服务器工作的状态,在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用。
2. Redis哨兵模式
哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例
2.1 Sentinel(哨兵)进程的作用
- 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。
- 提醒(Notification):当被监控的某个Redis节点出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。
- 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master;当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用现在的Master替换失效Master。Master和Slave服务器切换后,Master的redis.conf、Slave的redis.conf和sentinel.conf的配置文件的内容都会发生相应的改变,即,Master主服务器的redis.conf配置文件中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换。
2.2 Sentinel(哨兵)进程的工作方式
- 每个Sentinel(哨兵)进程以每秒钟一次的频率向整个集群中的Master主服务器,Slave从服务器以及其他Sentinel(哨兵)进程发送一个 PING 命令。
- 如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel(哨兵)进程标记为主观下线(SDOWN)
- 如果一个Master主服务器被标记为主观下线(SDOWN),则正在监视这个Master主服务器的所有 Sentinel(哨兵)进程要以每秒一次的频率确认Master主服务器的确进入了主观下线状态
- 当有足够数量的 Sentinel(哨兵)进程(大于等于配置文件指定的值)在指定的时间范围内确认Master主服务器进入了主观下线状态(SDOWN), 则Master主服务器会被标记为客观下线(ODOWN)
- 在一般情况下, 每个 Sentinel(哨兵)进程会以每 10 秒一次的频率向集群中的所有Master主服务器、Slave从服务器发送 INFO 命令。
- 当Master主服务器被 Sentinel(哨兵)进程标记为客观下线(ODOWN)时,Sentinel(哨兵)进程向下线的 Master主服务器的所有 Slave从服务器发送 INFO 命令的频率会从 10 秒一次改为每秒一次。
- 若没有足够数量的 Sentinel(哨兵)进程同意 Master主服务器下线, Master主服务器的客观下线状态就会被移除。若 Master主服务器重新向 Sentinel(哨兵)进程发送 PING 命令返回有效回复,Master主服务器的主观下线状态就会被移除。
3. Redis 哨兵的优点和缺点
3.1 优点
- 哨兵集群模式是基于主从模式的,所有主从的优点,哨兵模式同样具有。
- 主从可以切换,故障可以转移,系统可用性更好。
- 哨兵模式是主从模式的升级,系统更健壮,可用性更高。
3.2 缺点
- Redis较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这对资源造成了很大的浪费。
- 配置复杂
Redis:哨兵模式(Sentinel)原理相关推荐
- Redis哨兵模式(原理剖析)
Redis哨兵模式(原理剖析) 前言 一.Sentinel模式概述 二.配置哨兵模式 1.哨兵配置 1.1 优点: 1.2 缺点: 总结 前言 在Redis中主从复制解决高可用的方案是:当主节点服务器 ...
- Redis哨兵模式(Sentinel)
哨兵模式 概述 主从切换技术的操作是:当主机宕机后,需要手动把一台从机切换为主机.这就需要人工干预,费事费力,还会造成一段时间内服务不可用.这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式. Re ...
- redis哨兵模式-sentinel ,java客户端动态切换master
redis 的搭建模式 单机模式 : 单机服务 主从模式: 有备机,备机提供备份,和 读写分离的功能 哨兵模式: master宕机后,哨兵会选举备机替换master 集群模式: 集群能够做分布式,ma ...
- Reids系列: Redis哨兵模式(Sentinel) (五)
哨兵模式 介绍 Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(以及其很多客户端)都没有实现自动 ...
- 哨兵2号波段_分布式框架之高性能:Redis哨兵模式
本文首发于Ressmix个人站点:https://www.tpvlog.com 我们在搭建Redis的主从架构时,主节点一旦由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主 ...
- Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster),第三方模式优缺点分析
Redis 的几种常见使用方式包括: 单机模式 主从模式 哨兵模式(sentinel) 集群模式(cluster) 第三方模式 单机模式 Redis 单副本,采用单个 Redis 节点部署架构,没有备 ...
- redis哨兵模式没有切换主机_Redis哨兵(Sentinel)模式
Redis哨兵(Sentinel)模式 在这里插入图片描述 一.主从复制高可用 当我们使用主从复制出现的问题 手动故障转移 写能力和存储能力受限 主从复制 -master 宕机故障处理 主从切换技术的 ...
- Redis: Redis的主从复制(Master/Slave),一主二仆,薪火相传,反客为主,哨兵模式sentinel
命令: slaveof 主库ip 主库端口 配置从库 info replication 查看redis连接情况 slaveof no ...
- REDIS哨兵【Sentinel】模式+哨兵的核心知识点+redis哨兵主从切换的数据丢失问题+上一章铺垫的【异步复制数据丢失问题】+【集群脑裂】
1.redis哨兵模式的前言: 一年一度的问题来了,为啥子要用redis的哨兵模式的呢? 简单粗暴的理解下子,顺带开个玩笑,没有理解好,还望不要见笑: 其实redis的哨兵模式,个人理解:只是说法搞大 ...
最新文章
- MySQL启动关闭添加到 /etc/init.d/mysqld
- android 焦点的作用,Android中的视图焦点Focus的详细介绍
- zeroc ice php,ZeroC ICE+PHP整合
- 计算机视觉开源库OpenCV之平滑、模糊和滤波
- 怎样通过vb设置透视表多项选择_数据透视表有多强大?
- 金山安全实验室公布中国互联网六大类钓鱼网站
- 类似 Observer Pattern 的 NSNotificationCenter (实例)
- 数值计算:设计算法的若干原则
- 根据Uri获取文件的绝对路径
- python3.6中文版下载-Python3.6.6官方版
- 知其然,不知其所以然
- 使用Selenium获取当当网异步加载的部分分类数据
- YUV播放器支持10bit视频
- 《数据驱动 从方法到实践》之 数据驱动的环节 学习总结
- CentOS7 安装学之思开源考试系统Mysql版
- 1577 例题3 数字转换(LOJ10155) 约数计算 树上最长链(两次找最大深度)
- 数据库SQL入门学习
- MongoDB之副本集配置
- Dynamics 365 WebApi 常用语句-字段
- Navicat12 过期了怎么办
热门文章
- vue-video-player集成videojs-contrib-hls实现.m3u8文件播放
- 1134. Vertex Cover (25)
- 《Java大学教程》—第5章 数组
- html你可能还不知道的一些知识点
- 读《编程珠玑》 (三)
- 编制一个c语言成绩记录簿_C语言学到什么程度能写推箱子
- 抖音测试心理是什么软件,实用心理测试大全抖音版-抖音实用心理测试大全小游戏官方版预约 v1.0-友情手机站...
- 下列不可以判断网页是否正常打开的是_打开视频卡、无法加载原因查找
- Python---堆里有16颗豆子,有两个玩家依次取豆
- 048_Calendar日历