2019独角兽企业重金招聘Python工程师标准>>>

1.1前言

前一篇文章中,我们分析了主从复制的原理,但是在该模式下,一旦主节点由于故障无法提供服务,需要人工干预才能将从节点变为主节点,因此该模式不是高可用的。欣慰的是,Redis从2.8开始正式提供哨兵架构来解决这个问题。

1.2哨兵

当主节点出现故障时,哨兵(Redis Sentinel)模式下能自动完成故障发现和故障转移,并通知应用方,从而实现真正的高可用。

1.2.1故障发现

  • Sentinel节点每隔1秒钟向主节点发动ping命令判断其存活状态,当主节点在down-after-milliseconds时间内没有正确的响应,则Sentinel将此主节点置为“主观下线”。主观即当前Sentinel节点单方面认为主节点不可用,并没有得到其他Sentinel节点的确认。
  • 随后该Sentinel节点会通过 is-master-down-by-addr命令向其他Sentinel节点进行确认。当确认的Sentinel节点数>=quorum时,则该Sentinel节点认定该主节点“客观下线”。
  • 当判定主节点为客观下线时,需要选取一个Sentinel节点作为领导者来处理故障转移工作。Redis使用了Raft算法实现领导者选举。大致选举流程如下:首先Sentinel节点确认主节点主观下线时,会像其他Sentinel节点发送is-master-down-by-addr命令,要求将自己设置为领导者。然后收到该命令的Sentinel节点,如果没有同意过其他Sentinel节点的命令,则同意该请求,否则拒绝。最后如果该Sentinel节点如果收到超过一半的意向同意,则成为领导者,如果本回合没有选出领导者,则开启下一回合。

1.2.2故障转移

步骤如下:

  • 在从节点列表中选出一个节点作为新的主节点(1.先过滤掉不健康节点。2.选择从节点优先级最高的从节点,最在则返回,否则继续第三步。3.选择复制偏移量最大的节点,即复制最完整的节点,不存在则继续第四步。4.选择runid最小的从节点)。
  • 将上面选出来的从节点执行slaveof no one  命令,让其成为主节点。
  • Sentinel领导者节点向剩余的从节点发送命令,让他们成为新主节点的从节点。

1.3总结

哨兵机制能够自动完成故障发现和故障转移,有效的解决了Redis的高可用问题。

转载于:https://my.oschina.net/wuchanghao/blog/1824112

Redis大乱探------哨兵(二)相关推荐

  1. 大数据笔记(二十一)——NoSQL数据库之Redis

    一.Redis内存数据库 一个key-value存储系统,支持存储的value包括string(字符串).list(链表).set(集合).zset(sorted set--有序集合)和hash(哈希 ...

  2. Cocos Creator | 飞刀大乱斗开发教程系列(二)!

    点击上方蓝字关注我 预览效果 具体内容 ■ 这一期,主要讲解主页中间人物效果的实现.也就是,在下方列表选择不同人物,上方显示不同的人物,播放不同的效果,即下图的效果实现,此部分也是采用预制 Prefa ...

  3. 为什么至少三个哨兵_入职第一周,组长让我把部门redis服务搞成哨兵模式...慌-龙跃十二...

    少点代码,多点头发 本文已经被GitHub收录,欢迎大家踊跃star 和 issues. 入职第一周,我被坑了 最近刚入职新公司,本来想着这刚来新公司,一般都是熟悉熟悉公司同事,看看组内工程文档,找几 ...

  4. redis专题:redis的主从、哨兵、集群架构的配置和部署详情、以及问题分析

    文章目录 1. 在linux下安装redis 2. redis主从架构 2.1 redis主从架构搭建步骤 2.2 redis主从架构数据同步原理 2.3 如果在主从传输过程中,从节点挂了怎么办? 2 ...

  5. Redis(主从复制、哨兵模式、集群)概述及部署

    Redis(主从复制.哨兵模式.集群)概述及部署 前言 一.主从复制 (1)主从复制原理 (2)主从复制作用 (3)主从复制流程 (4)搭建主从复制 ①修改master节点配置文件 ②修改Slave节 ...

  6. Redis主从搭建(哨兵模式),springboot整合redis主从

    相关文章: redis主从复制(读写分离) redis哨兵模式 Redis配置详解 一.Redis主从搭建 本文讲解用的是Redis5.0.10搭建一主二从 Redis官方下载连接:http://do ...

  7. Redis主从复制(Replication)和哨兵模式(Sentinel)

    1.主从复制 1.什么是主从复制 redis的复制功能是支持多个数据库之间的数据同步.一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据 ...

  8. Redis(十八)——Sentinel 哨兵模式

    文章目录 Redis(十八)--Sentinel 哨兵模式 1.哨兵模式概述 2.搭建 Sentinel 集群 3.sentinel 集群测试 4.哨兵模式的所有配置详解 Redis(十八)--Sen ...

  9. Day267.预约系统的性能瓶颈、营销活动无缝切换秒杀活动、预约系统数据迁移方案、高流量下预约系统搭建熔断机制、预约系统redis集群主从哨兵架构 -Redis的高并发预约抢购系统

    一.预约系统的性能瓶颈 1.预约系统应对热门爆品时的缺陷 用户进行预约会涉及到两个维度的数据变更一个是用户信息,一个是SKU信息,如图↓所示: 正常来说这么搞一点问题没有,即便涉及到写数据库,但是每个 ...

最新文章

  1. 重温JavaScript
  2. hive 时间转字符串_2. HIVE 基本操作
  3. oracle命令窗口粘贴,Oracle数据库中的Copy命令
  4. 计算机导论的试题,计算机导论试题
  5. 前端学习(1947)vue之电商管理系统电商系统之使用自定义模板渲染
  6. 2-6:C++快速入门之内联函数,auto关键字,C++11基于范围的for循环和nullptr
  7. php试题库,PHP试题库一
  8. Java String常用的两个方法
  9. 对一个存储过程语法的解读
  10. 传统接口写法与Restful API 区别
  11. 请投量子位一票 | 2018年度明星学术公众号评选
  12. 项目引用android-support-v7-appcompat,如何使用android-support-v7-appcompat
  13. iec61508最新2020_功能安全IEC61508标准新旧版的对比.pdf
  14. cnn程序流程图_画流程图的基本原则
  15. Linux efi分区被删除了,恢复删掉的 MSR 和 EFI 分区
  16. wifi网络摄像机怎么用 无线网络摄像机怎么连wifi
  17. 环形10个树洞兔子c语言设计,[阅读打卡]I am a Bunny+提高孩子的欣赏能力我是一只小兔子,我的名字叫尼古拉斯 我住在一个树洞里面 在春天的时候,我喜欢看美丽的花儿,有...
  18. R语言入门——不掉包实现FNN(单层感知机)
  19. VS2017_扩大程序运行内存
  20. Stream使用技巧(1)------数据处理技巧

热门文章

  1. 小米8 android9手势,这么全面的小米手机操作手势你一定没见过
  2. $_post 数据上传到那个位置_如何实现图片上传并保存到数据库?
  3. linux 应用层gpio中断_如何在嵌入式Linux中检测GPIO线路上的中断?
  4. 命令行参数的模式匹配
  5. Spark GraphX
  6. AGC016B Colorful Hats(构造)
  7. hexo github pages 搭建博客
  8. JavaEE笔记(九)
  9. Android开发学习之路-指纹识别api
  10. ABP理论学习之依赖注入