• Redis简明教程:哨兵模式


    Redis简明教程:哨兵模式

    Redis Sentinel

      Redis Sentinel(哨兵模式)是Redis的高可用实现方案,在实际的生成环境中,对提高整个系统的高可用性是非常有帮助的。

    主从复制的问题

      Redis的主从复制模式可以将主节点的数据改变同步到从节点。

        

      这样从节点就可以起到两个作用

    • 作为主节点的一个备份,一旦主节点出现故障,从节点可以作为后备“顶”上来,并且保证数据尽量不丢失。(主从复制是最终一致性)
    • 从节点可以扩展主节点的读能力,当主节点面临大规模的读操作时,从节点可以分担压力

      但是主从复制也带来一些问题,比如当主节点出现故障,我们需要手动选择一个从节点代替它,此时不仅要修改应用方的主节点地址,还要命令其他从节点复制新的主节点,整个过程都需要人工干预。其次,主节点的读写能力、存储能力都受制于单机。

    聊一聊高可用

       聊到高可用,我们先来了解一下这个概念是什么意思:

    “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。

      通俗理解就是说很少发生故障,即使发生故障也能在最短时间内恢复的系统称之为高可用性

      那显然主从复制模式是无法满足高可用性的,因为一旦主节点宕机,需要人工干预进行故障转移,并且应用方很难第一时间发现问题,肯定会造成数据的读写错误,甚至造成应用法宕机。

       既然我们提到哨兵模式,必然是优于主从复制模式的。那他到底是个什么样的架构呢?我们来揭开他的神秘面纱!

    哨兵模式  

       其实啊,哨兵模式只是比主从模式多了若干个Sentinel节点。从下图的逻辑架构上看,Sentinel节点集合会定期对所有节点进行监控,特别是对主节点的故障实现自动转移

      

      我们来模拟一下故障转移的四个步骤:

      1)主节点出现故障,此时两个从节点与主节点失去连接,主从复制失败!

      

      2)每个Sentinel节点通过定期监控发现主节点出现了故障。

      

      3)多个Sentinel节点对主节点的故障达成一致,选举出Sentinel-2节点作为领导者负责故障转移。

      

      4)Sentinel领导者节点执行了故障转移,整个过程自动完成,不需要人工干预!

      

      5)故障转移后,整个拓扑结构如下。

      

    梳理一下哨兵的功能

      哨兵名字起得很通俗,放哨的,在Redis Sentinel架构中,它尽职尽责!

    • 监控:Sentinel定期检测Redis数据节点、其余的Sentinel是否可达。
    • 通知:Sentinel节点会将故障转移的结果通知给应用方。
    • 主节点故障转移:实现从节点晋升为主节点并维护后续正确的主从关系。
    • 配置提供者:在Redis Sentinel结构中,客户端在初始化的时候连接的是Sentinel节点结合,从中获取主节点信息。

      同时哨兵有多个,这样有好处,一个睡着了,其他的接着放哨

    参考资料

    • 《Redis开发与运维》
  • 相关阅读:
    『Power AI by AI』 PAI-AutoML2.0重磅发布
    基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?
    编码方法论,赋能你我他
    开发部署效率提升 12 倍,这款应用托管服务让云上运维更简单
    全景还原报错现场 | 应用实时监控 ARMS 上线用户行为回溯功能
    告别诊断烦恼 | 应用实时监控 ARMS 上线智能和实时诊断功能
    阿里云CDN上线 WAF,一站式提供分发+安全能力
    RDS for PostgreSQL 云盘加密功能使用方法
    MySQL8.0.17
    2370 小机房的树
  • 原文地址:https://www.cnblogs.com/MrSaver/p/12194635.html
Copyright © 2020-2023  润新知