Redis哨兵模式

Redis哨兵机制

Redis主从复制的缺点:没办法对master进行动态选举(Master宕机后,需要重新选举master),需要使用Sentinel哨兵机制完成动态选举。

 

目录

1. 简介

2. 哨兵进程的作用

3. 故障判定原理分析

4. 自动故障迁移

5. 案例演示

6. 哨兵启动


1. 简介

Redis 的哨兵模式到了 2.8版本之后
Sentinel (哨兵)进程是用于监控 Redis 集群中 Master主服务器工作的状态
在 Master 主服务器发生故障的时候,可以实现 Master 和 Slave 服务器的切换,保证系统的高可用。

2. 哨兵进程的作用

监控(Monitoring):哨兵(sentinel)会不断的检查Master和Slave是否正常运作。

提醒(Notification):当被监控的某个Redis节点出现问题时,哨兵可以通过API向管理员或者其他应用发送通知。

自动故障迁移(Automatic failover):当一个Master不能正常工作是,哨兵会开始一次自动故障迁移操作。

3. 故障判定原理分析

1. 每个Sentinel进行以每秒钟一次的频率想整个集群的Master主服务器,Slave从服务器以及其他sentinel进行发送一个PING命令。

2. 如果一个实例(instance)距离最后一次有效回复PING命令的时间超过 down-after-milliseconds 选项所指定的值,则这个实例会被sentinel进程标记为主观下线(SDOWN)

3. 如果一个master主服务器被标记为主观下线,则正在监视这个master的所有sentinel进程要以每秒一次的频率确认master服务器的确进入了主观下线状态。

4. 当有足够数量的sentinel进程(大于等于配置文件中指定的值 [sentinel monitor mymaster 192.168.231.134 6380 1])在指定的时间范围内确认master进入了主观下线状态,则master会被标记为客观下线。

5. 一般情况下,每个sentinel进程会以每10秒一次的频率向集群中的所有master、slave发送INFO命令。

6. 当master被sentinel进程标记被客观下线(ODOWN)时,sentinel向下线的master主服务器的所有slave从服务器发送INFO命令的频率会从10秒一次改为每秒一次

7. 若没有足够数量的sentinel进程同意master主服务器下线,master主服务器的客观下线状态就会被移除。若master重新向sentinel进程发送PING命令返回有效回复,master的主观下线状态就会被移除。

4. 自动故障迁移

  • 它会将失效 Master 的其中一个 Slave 升级为新的 Master , 并让失效 Master 的其他 Slave 改为复 制新的 Master ;
  • 当客户端试图连接失效的 Master 时,集群也会向客户端返回新 Master 的地址,使得集群可以使 用现在的 Master 替换失效 Master。
  • Master 和 Slave 服务器切换后, Master 的 redis.conf 、 Slave 的 redis.conf 和 sentinel.conf 的配置文件的内容都会发生相应的改变,即, Master 主服务器的 redis.conf 配置文件中会多一行 slaveof 的配置, sentinel.conf 的监控目标会随之调换。

5. 案例演示

  • 修改从机的sentinel.conf配置文件

  • 其他配置项说明

 

6. 哨兵启动

./redis-sentinel sentinel.conf

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值