Redis Master Slave + sentinel

来源:互联网 发布:手机软件加密 软件 编辑:程序博客网 时间:2024/05/24 05:39

先大概说下实践中该怎么配,再说下项目中比较好玩的事情。

配置说明

配置其实很简单。

  1. 开启redis主从结构。
  2. 打开多个sentinel监控master,sentinel组名要统一,注意sentinel投票数目的设置。

如果需要同步两个master-slave,可以考虑把一个结构的master变为另一个结构的slave。

同步完后注意斩断sentinel的监控关系,这里有两种方案。

  1. 重启sentinel并删除sentinel中自动追加的结构关系。
  2. 使用不同的sentinel group。

好玩的事情

在玩redis sentinel的时候发现了两个比较好玩的东西。

  1. 当master down了以后,sentinel会选出新的master,然后接着更新其他sentinel的配置和redis instance,如果在此期间原来的master又发生了重启,sentinel的选择机制就会发生混乱。
    这时会会引起一个好玩的现象,就是所有的instance都会认为自己是master,一段时间后就会发现master在所有的instance中相互切换。
    这是我在尝试redis的时候发现的问题,可能是由于做实验没在乎sentinel是否确实选择结束,急着重启redis看结果导致的。
  2. 如果在同一套master-slave结构配置多条sentinel-group会有意外的惊喜哦,多个sentinel组同时作用,会搞得redis一团糟。

最后再说一句

看sentinel的是时候注意sentinel配置中自动追加的条目,要搞清slave的instance和sentinel之间的相互识别。

下面用markdown做的图有点小问题,第三行右边的no分支无法显示,不知道是不是CSDN的bug。分支no的内容就是sentinel会每五分钟重启一次。

Created with Raphaël 2.1.0StartStart master&slavestart sentinel(M/S)?shut(M/S)?sentinel转监控slave,slave升级为master重启关闭的服务原master自动变为slaveEndsentinel信息不变重启关闭的服务之前slave变为单独mastershut(M/S)?slave一直为slave,sentinel信息不变重启关闭的服务主从结构回复,sentinel不变yesnoyesnoyes
原创粉丝点击