Redis拾遗(六)

哨兵:

  1. Redis主从复制模式下,一旦主节点故障不能提供服务,哨兵架构可解决此类问题,自动完成故障发现和故障转移,并通知应用方,实现真正的高可用。
  2. 逻辑架构上Redis Sentinel只是新增了多个Sentinel节点,这些节点集合会定期对所有节点进行监控,特别是对主几点的故障实现自动转移。
  3. 安装和部署:
    1. 启动主节点;
    2. 启动两个从节点(配置文件中加slaveof);
    3. 配置Sentinel节点;
    4. 启动Sentinel节点;(redis-sentinel命令);
  4. 部署技巧:
    1. 不应将Sentinel节点部署到同一物理机上,防止硬件故障导致整体异常;
    2. 部署三个以上奇数个Sentinel节点;
  5. 实现原理
    1. 三个定时监控任务:
      1. 每隔10s,每隔Sentinel节点会想主节点和从节点发送info命令获取最新的拓扑结构。
      2. 每隔2s,每个Sentinel节点会向Redis数据节点的__sentinel__:hello频道上发送该Sentinel节点对于主节点的判断以及当前Sentinel节点的信息,同时每个Sentinel节点也会订阅该频道,了解其他Sentinel节点以及它们对主节点的判断。
      3. 每隔1s,每个Sentinel节点会向主节点、从节点、其余Sentinel节点发送一条ping命令做一次心跳检测,来确认这些节点当前是否可达。
    2. 主观下线客观下线:
      1. 主观下线:
        1. 当心跳检测超过down-after-milliseconds没有进行有效回复,Sentinel节点会判定该节点下线,所谓主观下线。
      2. 客观下线:
        1. 当主观下线的节点是主节点时,该节点会通过sentinel is-master-down-by-addr命令向其他Sentinel节点询问对主节点的判断,当超过<quorum>个数,会做出客观下线的决定。
    3. 领导者Sentinel节点选举:
原文地址:https://www.cnblogs.com/fly-to-the-sky/p/9775696.html