redis的sentinel mode

上篇文章我们说了replication的一主二从复制和链式复制。

但这都是不可行的,因为它要你去手动设置老大(当主机挂掉之后),这会带来业务的停止。

所以,我们引入了哨兵模式。

哨兵就是一个进程,它会站岗,然后监视着master的活动。如果哨兵觉得master已经死了,那他就会根据算法自动选一个老大。这是哨兵智能的地方。

如果要布置哨兵集群的话,哨兵们会进行投票来选老大。


既然哨兵是一个进程,所以我们肯定要启动它:

在redis的目录下,还有sentinel的配置文件:

这里面的内容非常多。

我们这次实现一个最简单版的。

我们自定义一个配置文件sentinel.conf,里面只有一行:

sentinel monitor mymaster 127.0.0.1 6379 1

mymaster是一个名字,可以随便取。然后监控的是127.0.0.1 6379,从节点不用写,sentinel会自动监测到。后面那个1表示需要有多少个sentinel同意才能选出主节点。因为我们这里只有一个sentinel,那就写1就行了。


启动sentinel:

还是一样,我们让6379为master,6380和6381为slave。

现在我让6379停掉,30秒之后就会有日志出来:

6380自动被选为master了:

6381自动跟着6380混了:

而且我们自定义的配置文件也发生了变化:

如果此时6379再回来,它会自动成为6380的slave:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章