五、redis哨兵两套环境同一局域网容灾切换问题
上周遇到个灵异事件,实验室有两套环境来搭建redis集群和哨兵,分别是:
第一套环境IP:67(master) 65(salve) 66(salve)
第二套环境IP:115(master) 116(salve) 117(salve)
第一天把哨兵搭建好后,两套环境的主从关系都是一主两从,但是到了第二天,莫名其妙的,第二天环境的3个redis都挂载到第一套环境下了,都成了67的salve,如图所示:
1 127.0.0.1:6379> info replication 2 3 role:master 4 connected_slaves:5 5 slave0:ip=192.168.51.65,port=6379,state=online,offset=6398436,lag=1 6 slave1:ip=192.168.51.68,port=6379,state=online,offset=6398436,lag=0 7 slave2:ip=192.168.51.116,port=6379,state=online,offset=6399020,lag=0 8 slave3:ip=192.168.51.117,port=6379,state=online,offset=6398436,lag=0 9 slave4:ip=192.168.51.115,port=6379,state=online,offset=6398878,lag=0 10 master_replid:c37c216fa725c9e3475a8138b8242e85fd3b93c3 11 master_replid2:0000000000000000000000000000000000000000
第一套环境sentinel.conf配置:
1 port 26379 2 protected-mode no 3 daemonize yes 4 logfile /home/zmoon/redis-5.0.12/sentinel.log 5 sentinel deny-scripts-reconfig yes 6 sentinel monitor mymaster 192.168.51.67 6379 2 7 sentinel down-after-milliseconds mymaster 1000 8 sentinel failover-timeout mymaster 5000 9 sentinel auth-pass mymaster 123abc
第二套环境sentinel.conf配置:
port 26379 protected-mode no daemonize yes logfile /home/zmoon/redis-5.0.12/sentinel.log sentinel deny-scripts-reconfig yes sentinel monitor mymaster 192.168.51.117 6379 2 sentinel down-after-milliseconds mymaster 1000 sentinel failover-timeout mymaster 5000 sentinel auth-pass mymaster 123abc
然后经过研究配置文件发现搭建的两套sentinel.conf中,mymaster也就是master-name,都是一样的,所以就判断:
1.是不是因为首先在同一局域网,
2.都搭建了哨兵,
3.然后定义的主的name都是mymaster。
所以修改master-name,两套环境不同的master-name。经过主动宕机主,进行哨兵的容灾切换和周末两天的自动运行验证后,发现问题解决了。
得到结论:哨兵sentinel监控的redis主节点的名字,在同一局域网内,不同环境要不同的主节点名字,不然会主从关系飘移过去。