Redis哨兵基本概念

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Michaeles/article/details/85342174

1.Sentinel(哨兵)是Redis 的高可用性解决方案。通过一个或多个Sentinel 实例组成的Sentinel 系统可以监视多个主服务器和下属的所有从服务器,当主服务器进入下线状态时,自动将主服务器下的从服务器升级为新的主服务器。

2.比如:server1下线,会升级server2位新的主服务器

3.sentinel哨兵的作用

(1)Master 状态监测,如果Master 异常,则会进行Master-slave 转换,将其中一个Slave作为Master,将之前的Master作为Slave ;

(2)Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换 。

4.哨兵的工作模式

(1)每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令 
(2)服务器在down-after-milliseconds给定的毫秒数之内, 没有返回 Sentinel 实例发送的 PING 命令的回复, 或者返回一个错误, 则这个实例会被 Sentinel 标记为主观下线。 
(3)如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。 
(4)当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线,才会发生故障迁移,客观下线只适用于主服务器
(5)在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有Master,Slave发送 INFO 命令 ,当Master被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次

(6)若没有足够数量的Sentinel同意Master已经下线,Master的客观下线状态就会被移除。 若重新发送的PING命令返回有效回复,Master的主观下线状态就会被移除。

更多请见:Redis架构部署方案

猜你喜欢

转载自blog.csdn.net/Michaeles/article/details/85342174
今日推荐