上周遇到个灵异事件,实验室有两套环境来搭建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主节点的名字,在同一局域网内,不同环境要不同的主节点名字,不然会主从关系飘移过去。

五、redis哨兵两套环境同一局域网容灾切换问题的更多相关文章

  1. 四、针对redis容灾切换导致"脑裂"的情况

    网上参考到别人博客说,redis容灾切换的时候,有几率出现脑裂的情况. 什么是脑裂: sentinel判断master宕机,切换slave为新master的过程中,业务数据还在持续往原master写入 ...

  2. redis哨兵集群环境搭建

    一.哨兵的介绍 哨兵(sentinal)是redis集群架构中非常重要的一个组件,主要功能如下: 集群监控,负责监控redis master和slave进程是否正常工作 消息通知,如果某个redis实 ...

  3. Redis全方位详解--磁盘持久化和容灾备份

    序言 在上一篇博客中,博客介绍了redis的数据类型使用场景和redis分布式锁的正确姿势.我们知道一旦Redis重启,存在redis里面的数据就会全部丢失.所以这篇博客中向大家介绍Redis的磁盘持 ...

  4. redis主从集群搭建及容灾部署(哨兵sentinel)

    Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...

  5. Redis容灾部署(哨兵Sentinel)

    Redis容灾部署(哨兵Sentinel) 哨兵的作用 1. 监控:监控主从是否正常2. 通知:出现问题时,可以通知相关人员3. 故障迁移:自动主从切换4. 统一的配置管理:连接者询问sentinel ...

  6. 主从集群搭建及容灾部署redis

    redis主从集群搭建及容灾部署(哨兵sentinel) Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 l  Redis安装 l  整体架构 l  Redis主 ...

  7. 【转载】redis容灾策略

    版权声明:转载请注明出处 http://blog.csdn.net/irean_lau. https://blog.csdn.net/Irean_Lau/article/details/5136027 ...

  8. redis 哨兵机制环境搭建

    Redis哨兵机制,一主二从 注:Redis哨兵切换,建议一主多从 一.一主二从 教程步骤:https://www.cnblogs.com/zwcry/p/9046207.html 二.哨兵配置(se ...

  9. Redis(十五):哨兵Sentinel

    Redis哨兵 Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务: 监控(Monitoring): Sentinel 会不断地检查你 ...

随机推荐

  1. 数据分析之Numpy的基本操作

    Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. 1 创建 ndarray 使 ...

  2. 使用 vscode 插件可视化制作和管理脚手架及原理解析

    提到脚手架,大家想到的可能就是各种 xxx-cli,本文介绍的是另一种方式:以 vscode 插件的形式实现,提供 web 可视化操作,如下图: 下面介绍如何安装使用,以及实现原理. 安装使用 vsc ...

  3. ES6技术之“判空方案”

    一.常用方案 直接判断 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  4. 【Matlab】简单的滑模控制程序及Simulink仿真

    文章: [控制理论]滑模控制最强解析 滑模控制程序及Simulink仿真 这篇文章仿真和输出U的推到有些问题,博主根据此篇文章进行修改进行对sin(t)曲线的追踪(使用滑模控制) 使用滑模控制对sin ...

  5. PCB常用低速、高速板材参数性能(2)

  6. 手把手教你从零写一个简单的 VUE--模板篇

    教程目录1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 Hello,我又回来了,上一次的文章教会了大家如何书写一个简单 VUE,里面实现了VUE 的数据驱动视图 ...

  7. 动态规划 洛谷P4017 最大食物链计数——图上动态规划 拓扑排序

    洛谷P4017 最大食物链计数 这是洛谷一题普及/提高-的题目,也是我第一次做的一题 图上动态规划/拓扑排序 ,我认为这题是很好的学习拓扑排序的题目. 在这题中,我学到了几个名词,入度,出度,及没有环 ...

  8. java中接口到底是干什么的,怎么用,深入剖析

    6.总结性深一层次综合剖析接口概念[新手可忽略不影响继续学习] 通过以上的学习, 我们知道,所有定义在接口中的常量都默认为public.static和final.所有定义在接口中的方法默认为publi ...

  9. audio微信自动播放以及自定义样式

    audio标签如下: <audio id="audioTag" src="" autoplay="autoplay" controls ...

  10. Git使用方法以及出现的bug解决方案

    git常用命令 1.本地库初始化: git init 2.设置签名 (1)项目级别(项目里面) git config user.name xxx git config user.email xxx ( ...