哨兵Sentinel Redis的守护者

226 阅读1分钟

一 概述

Sentinel是redis的高可用解决方案,由一个或者多个Sentinel实例组成的可以监测多个主服务器和主服务器下的从服务器

二 监控流程

如果Sentinel监控的主服务器挂掉了,他会由以下几个步骤重现选一个主服务器

  1. Sentinel会在从服务器中选择一个升级为新的主服务器

  2. Sentinal会向所有从服务器发送新的复制命令,让他们成为新主服务器的从服务器,当所有从服务器开始复制新的主服务器后,故障转移完成

  3. Sentinel会监事已下线的主服务器,他重现上线后,让他成为新的主服务器的从服务器

三 数据结构

哨兵是通过字典的数据结构来监视主服务器的信息

四 主节点选取

首先是投票算法是选出主sentinel。

选择健康状态从节点(排除主观下线、断线),排除5秒钟没有心跳的、排除主节点失联超过10*down-after-millisecends。

选择最高优先级中复制偏移量最大的从机。

如果还没有选出来,则按照ID排序,获取运行ID最小的从节点。