Redis学习笔记(十四)--sentinel运维监控

在学习本节内容之前:要复习:redis主从复制

我就用第一种模型来做下面的学习跟测试,这里说个题外话,这几天学习redis打算用一个周的时间对redis有意哥初步的认识,在坚持了这些天以后,今晚学起来感觉有点累,虽然对redis的未知功能充满了好奇,但是我还是不想自己在没有状态的时候学习自己特别想学好的知识,在写这篇博客的时候做了一点心理挣扎,最总觉得自己还是不可以为自己找借口,坚持就是胜利,所以还是打算把学习心得笔记坚持写下去。坚持学习,每天都有知识进账,心里也是踏实的。

好,言归正传,下面就开始学习(测试还是要认认真真)。

首先来考虑主从集群(这里说的是第一种模型,这里我简称为放射状模型)的一种场景:

万一master服务器宕机了怎么办,你想到了吗?我们可以借鉴线性主从集群的处理方法,就是master宕机,那么第一个slave自动变为master,第二个slave把第一个slave当成自己的master以此类推(在真正的企业需求中,肯定是两种集群方式一起使用的,像一个网状)。

借鉴这种方法,我们可以在master宕机的时候,修改任意一个slave(这里假设修改slave1)变为master,然后其他的slave都修改自己的master服务器为slave1,这样就形成了新的放射状模型。

接下来我们就实践一下,这里我就开三个服务器,其中一个做master,另两个做slave。配置过程我就不展示了,不会得点上面的连接。

下面是我做这个实践的步骤:

1.搭建主从集群。

这是port == 6379服务器的info

port == 6380的服务器info:

port==6381的服务器info

好搭建完毕。

2.下面我们来模拟服务器宕机(shutdown)但是这里我们先手动的方法来解决这个问题,今天的主题先放一放:

这里我们的具体过程:

1。运行时修改master——slave

修改一台slave为master

(1)、命令该服务不做其他服务的slave

            命令:slaveof no one

(2)、修改其readonly 为yes


其他的slave再指向new  master A

(1)、命令该服务的为new master A的slave

            命令格式:slaveof ip port

首先shutdown6379服务器:

看各个服务器的状态信息:

6380:


6381:


注意都显示link——down。

服务器成功宕机(哈,挺开心的样子,运维的可不喜欢,这要是半夜,运维工作者要遭罪了)。

下面我们尝试修改6380为master按照上面的步骤进行修改:


修改完毕。

接下来把其他slave指向6380.

修改6381

再看6380的info

这里我们就完成了修改。

其实我上面埋了一个引子,纯手工来改运维做那个作者的压力也太大了,工作也太累了,所以有没有一种方法能自动来修改呢?

这就进入我们的主题了。

来学习sentinel运维监控,如名字一样,监控sentinel服务器不停和master通信,当master宕机以后,sentinel发现master停止了通信(几秒钟都没有回应),那就会执行上述的手工操作。

看一下sentinel的模型:


sentinel监控配置:


有必要说一下这个配置项的意义:

试想加入原来master有很多的slave,当master宕机,其中一个slave变为master后,其他slave一下了全指向新的master,这就是之前说的主从配置的一个缺陷

所以上面那个配置项就是指定一次几台slave连接到新的master。这里我让他一次一台。

配置好了以后,启动三台服务器:

6379info:

启动sentinel进程



刚刚启动的信息:

这时候我们让master shutdown等待30s,返回的信息:


来看看服务器的信息:

6380变成了master服务器

6381变成了slave服务器


为什么会选择6380做master呢,master的选择是wo随机的(我这句话是有问题的,其实sentinel有一套选择slave做master的选举机制,谢谢评论区的问题,让我也学习到了,这里分享一篇博客,关于sentinel的i问题的解释:sentinel实现机制和原理详解),但是我偏偏不愿意让他随机。

好的我们可以设置的,方法就是在配置文件中修改slave服务器的优先级,

这是配置项,数值越小优先级越高,这次我们让6381变master

下面模拟6379宕机,重复之前的操作,这里我直接贴图看结果是不是6381成为new master:


正如我们预期的一样。

终于学习玩这个课程,坚持就是胜利!后面还有项目课程,加油!


猜你喜欢

转载自blog.csdn.net/lyztyycode/article/details/79574236