zoukankan      html  css  js  c++  java
  • 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开发与运维》
  • 相关阅读:
    TTreeView.OnCustomDrawItem
    xe Style
    delphi 加密 XOR
    ReportMachine 自定义代码 画细线
    XE 安装后C盘占用太大,C盘空间清理
    FireFox 书签 缓存 路径设置
    Android 照相
    Android手机与服务器(案例一) webservice
    win10/win7 笔记本 开启虚拟无线 批处理
    Delphi XE6打电话
  • 原文地址:https://www.cnblogs.com/MrSaver/p/12194635.html
Copyright © 2011-2022 走看看