哨兵模式:
当主服务器中断服务后,可以将一个从服务器升级为主服务器,以便继续提供服务,但是
这个过程需要人工手动来操作。为此,Redis2.8 中提供了哨兵工具来实现自动化的系统监
控和故障恢复功能。哨兵的作用就是监控 Redis 系统的运行状况,它的功能包括以下两个。
1、监控主服务器和从服务器是否正常运行。
2、主服务器出现故障时自动将从服务器转换为主服务器。
哨兵的工作方式
每个 Sentinel (哨兵)进程以每秒钟一次的频率向整个集群中的 Master 主服务器,
Slave 从务器以及其他 Sentinel(哨兵)进程发送一个 PING 命令。如果一个实例
(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds
选项所指定的值, 则这个实例会被 Sentinel(哨兵)进程标记为主观下线(SDOWN)。
如果一个 Master 主服务器被标记为主观下线(SDOWN),则正在监视这个 Master 主
服务器的所有 Sentinel(哨兵)进程要以每秒一次的频率确认 Master 主服务器的确进入
了主观下线状态。当有足够数量的 Sentinel(哨兵)进程(大于等于配置文件指定的值)
在指定的时间范围内确认 Master 主服务器进入了主观下线状态(SDOWN),则 Master
主服务器会被标记为客观下线(ODOWN)。
在一般情况下, 每个 Sentinel(哨兵)进程会以每 10 秒一 169 / 196 次的频率向
集群中的所有 Master 主服务器,Slave 从服务器发送 INFO 命令。当 Master 主服务器
被 Sentinel(哨兵)进程标记为客观下线(ODOWN)时,Sentinel(哨兵)进程向下线
的 Master 主服务器的所有 Slave 从服务器发送 INFO 命令的频率会从 10 秒一次改为
每秒一次。若没有足够数量的 Sentinel(哨兵)进程同意 Master 主服务器下线, Master
主服务器的客观下线状态就会被移除。若 Master 主服务器重新向 Sentinel (哨兵)进程
发送 PING 命令返回有效回复,Master 主服务器的主观下线状态就会被移除。
优点
哨兵模式是基于主从模式的,所有主从的优点,哨兵模式都具有。主从可以自动切换,系
统更健壮,可用性更高。
缺点
Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复杂。