Redis Sentinel原理

Posted IT-老牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis Sentinel原理相关的知识,希望对你有一定的参考价值。

首先, 哨兵模式是一种特殊的模式,它是 Redis 高可用的一种实现方案。首先哨兵是一个独立的进程, 可以实现对 Redis 实例的监控、通知、自动故障转移。

实际上,每个哨兵节点每秒通过 ping 去进行心跳监测(包括所有 redis 实例和 sentinel 同伴),并根据回复判断节点是否在线。

如果某个 sentinel 线程发现主库没有在给定时间( down-after-milliseconds)内响应这个 PING,则这个 sentinel 线程认为主库是不可用的,这种情况叫 “主观失效”(即SDOWN);这种情况一般不会引起马上的故障自动转移,但是当多个 sentinel 线程确实发现主库是不可用并超过 sentinel.conf 里面的配置项 sentinel monitor mymaster #ip #port #number 中的 #number 时候(这里实际上采用了流言协议),一般其余 sentinel 线程会通过 RAFT 算法推举领导的 sentinel 线程负责主库的客观下线并同时负责故障自动转移,这种情况叫 “客观失效”(即 ODOWN)。

具体流程如下图所示:

哨兵模式的配置项

以上是关于Redis Sentinel原理的主要内容,如果未能解决你的问题,请参考以下文章

Redis Sentinel原理

Redis-sentinel监控

入门指南|redis-Sentinel(哨兵机制)你学废了么?

redis sentinel 工作原理

Redis集群

Redis集群-哨兵模式原理(Sentinel)