redis(4)Sentinel监控

先讲解一下sentinel配置文件的主要配置:

// Sentinel节点的端口

port 26379

dir /usr/local/redis/tmp


// 当前Sentinel节点监控 127.0.0.1 这个主节点//

1代表判断主节点失败至少需要2个Sentinel节点节点同意,这个数字应该<=sentinel主机数量//

mymaster是主节点的别名

sentinel monitor mymaster 127.0.0.1 6379 2


master被当前sentinel实例认定为“失效”的间隔时间  
如果当前sentinel与master直接的通讯中,在指定时间内没有响应或者响应错误代码,那么  
当前sentinel就认为master失效

sentinel down-after-milliseconds mymaster 30000


//当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,

选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1

sentinel parallel-syncs mymaster 1


//故障转移超时时间为180000毫秒

sentinel failover-timeout mymaster 180000   

进入正题:

还是https://blog.****.net/a944750471/article/details/80717930这里的环境

sentinel就一台(应该弄三台的),监控master

1、修改sentinel配置文件(这里不让他后台运行)

    dir /usr/local/redis/tmp

    sentinel monitor mymaster 47.101.32.189 6379 1

2、修改slave(6380配置文件中的slave-priority)

    slave-priority 99

    默认值是100。master down了之后sentinel会选slave-priority值更小的作为新的master。

    如果slave-priority一样,则随机选一个为master(好像是这样)。

3、测试

    1)、先启动sentinel

    sentinel的启动方式有以下两种:

    bin/redis-sentinel ./sentinel.conf

    bin/redis-server ./sentinel.conf --sentinel

    因为没有启动被监控的master和slave所以出现下图

    redis(4)Sentinel监控

    2)、启动master

    新增以下log

redis(4)Sentinel监控

    3)、依次启动slave(6379)和slave(6380)

    新增以下log

redis(4)Sentinel监控

    4)、让master down

    新增以下log

redis(4)Sentinel监控

    master down了

    继续出现log

redis(4)Sentinel监控    选举出新的master,新的master为slave(80),将slave(79)和原master 更改为slave(80)的slave。并且原master作为新的slave down了

    查看slave(80)

redis(4)Sentinel监控

    已经变成新的master了,并且有了一个slave,slave是slave(79)

    查看slave(79)

redis(4)Sentinel监控

    变成slave(80)的slave了

    重新启动原来的master

    新增以下log

redis(4)Sentinel监控

原master连接上了,并且更改为slave(80)的slave了

查看原master

redis(4)Sentinel监控

    变成slave(80)的slave了

    查看slave(80)

redis(4)Sentinel监控

    有两个slave了


ps:把所有redis和sentinel关闭后再重新启动,启动后的状态会和sentinel做完故障切换后的状态一样。

因为sentinel做完故障切换的时候会修改redis和sentinel的配置文件!


关于设置连接密码:

修改所有master、slave的配置文件的requirepass和masterauth (保持一致)

requirepass 123123

masterauth 123123

修改sentinel的配置文件的sentinel auth-pass

sentinel auth-pass mymaster 123123

修改完成后可正常进行主从复制和sentinel监控


有不正确的地方还望指出!