【Redis】聊一下Redis的哨兵机制

这篇具有很好参考价值的文章主要介绍了【Redis】聊一下Redis的哨兵机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在上一篇文章中,我们学习了数据库的Redis的主从集群复制模式,如果从库出现问题,那么其他主从库还可以处理读写请求,但是如果主库宕机,写请求从库处理不了,整个系统就不可用了,虽然只处理只读请求,显然是不符合业务需求。
【Redis】聊一下Redis的哨兵机制
如上图中所示当主库出现异常的,如何处理,一般的处理方式是通过选择一个新的主库进行处理请求。

  • 主库是否真的挂了?
  • 如何选择一个主库?
  • 如何将新的主库信息同步给从库?

而上面这个流程就是哨兵所解决的,哨兵机制是实现主从库自动切换的关键机制,有效解决了主从复制模式下故障转移的三个问题。

哨兵机制的核心流程

类比一下在现实生活中,哨兵的作用是什么,主要是负责周边安全,也就是会时不时的看一看周边有什么异常的情况没,有敌军没有。而Redis哨兵机制也是同样的原理,有一个单独的进程进行监听主从库运行实例,主要就是监控、选主、和通知。
【Redis】聊一下Redis的哨兵机制

监控

监控主要是判断主从库是否出现服务实例异常,如网络连接、服务宕机、关闭等情况。如果只是针对的从库下线其实影响还好,并且其他的主从库也可以继续提供服务,但是如果主库出现下线,就需要选择一个新的主库来进行提供写服务,而选举的这个主库需要和集群内的从库进行数据的复制,以及选择主库的这个过程都是比较耗费资源的。具体的流程就是哨兵进程会定时发送PING到主从库。

选主

一旦确定主库宕机后,就需要从已有的集群中选择一个从库作为一个主库实例,以提供服务。

通知

当选择一个新的主库实例后,需要主库发送自己的info信息到集群内的从库实例,然后让从库实例进行同步,以及通过客户端与主库建立连接。
在通知中,只需要一次网络的交互通知就可以,但是监控和选主过程中,需要判断好主库到底有没有宕机,以及如何选择一个新的主库。需要涉及到决策逻辑。

主观和客观下线

主观下线其实比较简单,就是当哨兵机制发送给主从库实例的PING超时相应,就会判断为主观下线,对于从库实例其实没有什么影响,但是对于主库如果误判了主库的下线,就会出现不必要的选主和主从复制过程,其中涉及到计算和通信开销。
而误判的判断标准就是哨兵以为A主库宕机了,但是实际上是由于A主库负载过高没有处理过来,那么后续的选择和主从复制就是消耗。
如何减少误判?
如果在现实生活中,帮派之间选择帮主,那么简单的逻辑就是主要过了半数以上的结果就是大家都认同的,同样的道理,也就是利用哨兵集群,比如哨兵1,2认为主库下线,那么就可以认为主库下线。
客观下线:只要大多数的哨兵实例,都判断主库已经主观下线,主库会被标记为客观下线
【Redis】聊一下Redis的哨兵机制

如何选定主库

选择主库的过程中,先会筛选不符合条件的从库实例,然后从符合的实例中进行按照优先级、复制进度、ID号打分,得分最高者就是从库。

筛选

【Redis】聊一下Redis的哨兵机制
筛选的过程比较简单,必须是在线的从库实例以及网络比较稳定的实例。
网络稳定通常是查看之前的网络连接状态,当超过一定的阈值,其实就可以判断不符合条件,而在Redis中有down-after-milliseconds 是主从库断连的最大连接超时时间,如果在给定时间内都没有连接上,并且超过10次,那么就不符合选择主库的条件。
上图中就是将已经下线的从库2 以及网络不稳定的从库5 pass。

评分

评分的过程只要有3个过程,只要评选出分数高者,就选定为主库。具体就是1.优先级最高 2.数据复制进度快的高 3.id实例小的高
优先级评分可以通过在设置redis实例的时候通过slave-priority配置项,比如针对硬件配置比较高的,设置较大的优先级。如果选择出即退出。
而复制进度快的,我们知道在数据复制的时候,主从库都分别通过master-repl-offset和slave-repl-offset在repl_backlog_buffer中记录自己的复制的位移,主要通过一个函数计算出那个从库的复制位移更接近已经宕机的主库位移就可以选择出。
【Redis】聊一下Redis的哨兵机制

如果基于复制进度都没有办法选择出,那么只能通过ID最小的号选择为主库。
总结一下,其实选择主库的过程就是两个过程一个筛选数据以及通过优先级、数据复制进度、ID编号依次选择主库。

总结

本篇主要循序渐进介绍了在数据同步的过程中,如果主库实例宕机的情况下,如果选择一个主库。相应的引出了怎么判断主库下线(主观和客户下线)、以及如何选择主库、哨兵机制的核心流程。那么对于能解决选择主库的哨兵集群,又是什么样的原理,我们下一篇介绍。
通过使用哨兵实例可以减少误判率,但是哨兵集群中如果出现实例宕机,,是否会影响主库判断和选择?文章来源地址https://www.toymoban.com/news/detail-469846.html

到了这里,关于【Redis】聊一下Redis的哨兵机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis高可用:哨兵机制(Redis Sentinel)详解

    目录 1.什么是哨兵机制(Redis Sentinel) 2.哨兵机制基本流程 3.哨兵获取主从服务器信息 4.多个哨兵进行通信 5.主观下线和客观下线 6.哨兵集群的选举 7.新主库的选出 8.故障的转移 9.基于pub/sub机制的客户端事件通知 Redis Sentinel,即Redis哨兵,在Redis 2.8版本开始引入。哨兵的核心

    2024年02月12日
    浏览(42)
  • Redis主从复制、哨兵机制、集群分片

    目录 一.主从复制 1.概述 2.主从架构相比于单点架构的优势 3.主从复制原理和工作流程 第一次同步 第一阶段:建立链接、协商同步 第二阶段:主服务器同步数据给从服务器  第三阶段:主服务器发送新写操作命令给从服务器 基于长连接的命令传播 分摊主服务器的压力 问题

    2024年02月14日
    浏览(51)
  • Redis(六)主从模式与哨兵机制

    配置一主二从集群 开启三个linux,并安装redis info replication 查询当前库的信息 replicaof 192.168.31.238 6379 重启redis服务,重新查看信息 主机: 从机信息 测试主机写,从机读 主机可读可写,但是多用于写 从机可读不可写 主机失联 从机依然可以获取数据 两个从机的角色并没有发生

    2024年02月06日
    浏览(78)
  • Redis分布式系统:哨兵机制

    “普通到不普通的人,哭着笑着的人~”          Redis在主从复制的机制下,一旦主节点出现了故障宕机,不能提供服务后。就需要人工进行主从切换,重新从各从节点中选取新的主节点。同时大量的应用方请求被通知切换到新的主节点上。          当然,上述的一系列操

    2024年01月25日
    浏览(48)
  • redis夯实之路-哨兵(Sentinel)机制详解

    Sentinel(哨兵)保证了redis的高可用性,一个Sentinel或多个Sentinel组成的系统监视多个主从服务器,当主服务器下线时,自动将一个从服务器升级为主服务器。 集群监控:负责监控redis master和slave进程是否正常工作  消息通知:如果某个redis实例有故障,那么哨兵负责发送消息给

    2024年01月21日
    浏览(41)
  • Redis的主从复制和哨兵机制详解

    注:本篇部分知识点来源于【Redis深度历险-核心原理和应用实践】书籍当中! 在了解 Redis 的主从复制之前,让我们先来理解一下现代分布式系统的理论基石——CAP 原理。 CAP 原理就好比分布式领域的牛顿定律,它是分布式存储的理论基石。自打 CAP 的论文发表之后,分布式存

    2024年02月09日
    浏览(46)
  • Java开发 - 深入理解Redis哨兵机制原理

    Redis的主从、哨兵模式、集群模式,在前文中都已经有了详细的搭建流程,可谓是手把手教程,也得到了很多朋友的喜欢。由于前文偏向于应用方面,就导致了理论知识的匮乏,我们可能会用了,但却不明所以,所以今天,博主就通过接下里的几篇博客给大家分别讲解Redis哨兵

    2024年02月17日
    浏览(41)
  • Redis系列学习文章分享---第一篇(Redis快速入门之初始Redis--NoSql+安装redis+客户端+常用命令)

    欢迎小伙伴交流学习,这是第一篇(Redis快速入门之初始Redis–NoSql+安装redis+客户端+常用命令),后续持续更新 Redis是一种键值型的NoSql数据库,这里有两个: 键值型 NoSql 其中 键值型 ,是指Redis中存储的数据都是以key、value对的形式存储,而value的形式多种多样,可以

    2024年02月20日
    浏览(57)
  • Redis集群(分布式缓存):详解持久化、主从同步原理、哨兵机制、Cluster分片集群,实现高并发高可用

            单机式Redis存在以下问题,因此需要Redis集群化来解决这些问题        Redis数据快照,简单来说就是 把内存中的所有数据都记录到磁盘中 。当Redis实例故障重启后,从 磁盘读取快照文件,恢复数据 。快照文件称为RDB文件,默认是保存在当前运行目录。     (1)

    2024年02月08日
    浏览(59)
  • 关于连锁,我们与ChatGPT的聊了一下

    下文内容为编者与ChatGPT的实际对话并附对话截图。对话内容为与连锁相关的问答以及建议咨询。内容仅供参考! ChatGPT相较于2020年推出即被遗忘的Chat3,最明显区别亦是本次出圈核心原因的一点在于交互界面——即对话框,而内容仍在接受使用者的考量与训练。对话如下:

    2024年02月01日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包