Redis-哨兵容灾演练

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

上篇,我们提到Redis哨兵集群的搭建。本篇,我们演练哨兵容灾的过程。

一、查看当前的集群情况

在演练容灾之前,我们有必要看下现在redis集群和sentinel集群的情况。

(1)从日志可以看出,当前的master节点的ip是192.168.5.102(即sparkproject1),然后它有一个slave(ip为192.168.5.133,即sparkproject2)。

(2)当前的sentinel集群,还有另外两个sentinel。

那么,我们在接下来的容灾演练中,我们会kill掉master,然后通过日志分析该过程。

二、容灾演练

1、把master节点kill -9掉,pid文件也删除掉。

2、看出sentinel的日志。(红线框中的日志) 

 

 

(1)首先当前哨兵认为master已经sdown了。
(2)指定quorum个哨兵都认为master已经sdown了,此时master就变成了odown。
(3)尝试恢复master,因为有majority个哨兵存活,那么选出哨兵1被选举为执行后续的主备切换。
(4)哨兵1去新的master(slave)获取了一个新的config version。
(5)尝试执行failover。
(6)投票选举出一个slave切换成master,每个哨兵都会执行一次投票。
(7)修改slaveof noone,不让它去做任何节点的slave了; 把slave提拔成master; 旧master不再是master了。
(8)哨兵就自动认为旧master变成了slave了,133:6379变成了master。
(9)哨兵去探查了一下旧master的状态,认为它sdown了。

以上就是哨兵主备切换的过程。现在我们查看一下当前的master概要信息,如下:

同时,我们也看到了哨兵的配置文件下,这里自动修改为新master的ip了:

 

3、恢复旧master。 

(1)重启旧的master。

(2)查看哨兵的日志。(旧的master被哨兵自动切换成slave节点)

 

  

猜你喜欢

转载自blog.csdn.net/Anbang713/article/details/83928816