SpringBoot整合Redis主从哨兵模式,故障切换失败?

目前使用Redis主从复制,添加Sentinel哨兵监听主的状态,如果master断线,自动推荐slave为新master,到这里redis环境一切正常。

使用Jedis进行测试,客户端向master进行写数据,然后人为关闭master,客户端出现连接失败,没有自动进行切换吗?(测试环境是SpringBoot+Redis)

主从和客户端连接池根据哨兵切换是成功的,但是客户端在操作redis时,模拟宕机后,出现无法连接、写数据失败

以下是Redis的配置文件:

 @Bean
public JedisPoolConfig jedisPoolConfig() {
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxIdle(maxIdle);
    jedisPoolConfig.setMinIdle(minIdle);
    jedisPoolConfig.setMaxTotal(maxTotal);
    jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
    jedisPoolConfig.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
    jedisPoolConfig.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
    jedisPoolConfig.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
    jedisPoolConfig.setTestOnBorrow(testOnBorrow);
    jedisPoolConfig.setTestWhileIdle(testWhileIdle);
    return jedisPoolConfig;
}

@Bean
public RedisSentinelConfiguration sentinelConfiguration(){
    RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentinelConfiguration();
    //配置matser的名称
    RedisNode redisNode = new RedisNode(hostName, port);
    redisNode.setName("mymaster");
    redisSentinelConfiguration.master(redisNode);
    //配置redis的哨兵sentinel
    RedisNode senRedisNode = new RedisNode(sentinelHost,sentinelPort);
    Set<RedisNode> redisNodeSet = new HashSet<RedisNode>();
    redisNodeSet.add(senRedisNode);
    redisSentinelConfiguration.setSentinels(redisNodeSet);
    return redisSentinelConfiguration;
}

@Bean(name="jedisConnectionFactory")
public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig jedisPoolConfig, RedisSentinelConfiguration sentinelConfig) {   
    JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(sentinelConfig, jedisPoolConfig);
    jedisConnectionFactory.setPoolConfig(jedisPoolConfig);   
    jedisConnectionFactory.setPort(port);   
    jedisConnectionFactory.setPassword(password);  
    jedisConnectionFactory.setTimeout(timeout);
    return jedisConnectionFactory;
}

2个回答

经过几天的测试研究,问题已经解决!感兴趣的朋友可以跟你们交流一下

JohnnyWu9712
诺坎普之旅 回复X825032631: 我的demo程序是多线程的,在执行线程任务的期间,人为关闭master,哨兵会自动切换,这时候如果线程不做处理,会出现错误,需要记录,如果断开,记录线程任务的进度,重新开启新线程,继续之前的任务,大概就是这个思路
5 个月之前 回复
X825032631
X825032631 回复诺坎普之旅: 能贴一下解决方法的代码吗?
5 个月之前 回复
JohnnyWu9712
诺坎普之旅 回复weixin_41805643: 哨兵切换切换后,程序需要重新获取操作对象(根据新master)
6 个月之前 回复
weixin_41805643
weixin_41805643 回复诺坎普之旅: 大佬,程序里怎么知道新选出的主节点是那个呢?
6 个月之前 回复
JohnnyWu9712
诺坎普之旅 回复u010637892: redis主从切换时一切正常的,我的测试程序是多线程操作,当redis主从切换后,程序也要考虑切换机制,因为程序用的还是之前的RedisTemplate对象
7 个月之前 回复
u010637892
u010637892 请问是什么原因呢?
7 个月之前 回复

楼主是怎么进行解决的,我的问题是,redis主从切换是没有整合前是正常的,整合过主从读写分离之后,master宕机程序无法写入读取数据。
而maser重启动时,会去重新进行选举,可以进行新的master写slave读。这个是可以的。问什么宕掉之后就不能进行读写操作了?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
redis哨兵模式实现主从故障切换
Mysql的存储管理: Server1(master): [root@server1 ~]# tar zxf redis-4.0.8.tar.gz [root@server1 ~]# cd redis-4.0.8 [root@server1 redis-4.0.8]# yum install gcc -y [root@server1 redis-4.0.8]# make [root@serve...
springboot 整合redis 哨兵模式
1 搭建本机redis集群 创建三个redis集群(方便起见,都是在本机,只是修改了端口号) 2 修改redis.windows.conf 配置各自的端口号 在从服务器 redis.windows.conf 增加slaveof ip port (主服务器的ip和端口) 3 在每个redis服务器文件夹下创建 sentinel.conf文件内容为: # 这个是Redis6379配置内容,其他文...
springboot整合redis(哨兵模式)
参考文章: https://www.cnblogs.com/cunkouzh/p/9242292.html https://blog.csdn.net/liguangyan_neu/article/details/78027105 https://blog.csdn.net/u014513883/article/details/77036890?locationNum=9&amp;amp;fps=1...
redis 主从+哨兵模式
redis主从+哨兵模式主从配置master:    bind 0.0.0.0            //监控本地所有网卡IP    protected-mode no客户端连到服务器查看复制信息:&amp;gt; info replicationslave1:    bind 0.0.0.0    slaveof master_ip master_port   //修改master_ip和port   ...
redis主从+哨兵模式
redis主从+哨兵模式
Redis主从模式和哨兵模式
这篇是我在csdn上写的第一篇博客,对前几天在听的那节Redis课程的记录、总结。   ##主从模式 主节点用于服务,从节点用于数据备份(不能跳过主节点直接给从节点写入),在主节点关机后,从节点可变为主节点替代已关闭的主节点提供服务。 为了保持主从节点数据一致性,在每次给主节点写入数据后,都会给从节点做一次数据更新。 ###不足1:从节点变为主节点需要人工手动修改redis.proper...
三:redis哨兵模式实现主从故障切换1
介绍 Redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。 虽然 Redis Sentinel 释出为一个单独
三:redis哨兵模式实现主从故障切换2
本篇接着上一篇进行redis哨兵的配置练习实验,一般经典的哨兵需要3个节点(为什么是3个节点,不是两个节点)后面专门写篇文章来分析这个问题. 可以再用一台虚拟机安装一个redis服务,这台虚拟机不需要启动实例,启动哨兵就行,我这里还是用两台机器只是测试,生产上可以分开,在zys-zk01 上启动一个哨兵端口5000,在zys-zk02上启动两个哨兵节点端口分别为5001,5002 ,这样就可以模拟
(十一)redis主从模式及哨兵
一、主从模式 简介 redis中可以通过slaveof 或者配置文件设置slaveof选项,来让当前server成为某个server的从节点,本server就是被称为从服务器(slave),对方被成为主服务器(master)。slave会复制master的数据,master可以接收读写请求,slave默认情况下只能读不能写。 优点 slave会复制master数据,达到备份效果 多个s...
Redis哨兵模式主从集群搭建
目前项目组还处于刚刚成立阶段,有许多东西需要从零到一,借着这个机会,学习到许多以前没有接触过的东西,Redis哨兵模式主从集群也是在这个阶段搭建的,其实在很久以前就一直有搭建哨兵集群的想法,直到一年之后才来做这件事感到挺惭愧的,将知识点记录和总结下来也是一种快乐。 一、Redis 哨兵模式简介 Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高...
redis哨兵整合springboot问题
大家推荐个靠谱的公众号程序员探索之路,大家一起加油  整合redis哨兵模式时会遇到几个问题 1.不能连接192.168.199.171:26379地址 2.DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified 也就是不能连接受保护...
springboot连接redis哨兵模式
jar包 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-boot-starter-data-redis&amp;lt;/artifactId&amp;gt; &amp;lt;/dependency&amp;gt; &amp;l...
SpringBoot redis哨兵模式使用
1.pom.xm文件配置 &amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org...
SpringBoot 2.0 连接 Redis 主从、哨兵集群
上一篇文章中我使用docker-compose搭建了redis的主从复制,并启动3个哨兵容器相互监控。 https://blog.csdn.net/qq_39211866/article/details/88044546 现在,我要使用SpringBoot来连接redis集群, 由于使用了哨兵模式,显然,不能向之前配置单节点那样配置连接池了, 节点经过故障转移后,主从结构已经发生了改变且主已经...
Redis实现主从备份和故障切换
redis安装参考我其他微博redis中,主从切换场景中,没有绝对的主和从,只有初始化的主和从,然后当主down后,从就变成主了,而主即使连接上,也是从,不会变为主准备:    主机 :192.168.24.128 1377    从机: 192.168.24.128 1477主从备份(默认从机只读)master配置不变,        slave修改配置文件(# vi redis-3.0.3/r...
Redis 主从, 哨兵配置
Redis主从配置 1.启动一个主redis 不用做任何配置 2.启动一个从redis,有两种方式。a.在conf中配置slaveof &lt;masterip&gt; &lt;masterport&gt; ,masterip为主库ip,masterport为主库端口;b.在启动命令中添加 --slaverof &lt;masterip&gt; &lt;masterport&gt; Red...
redis主从 | 哨兵 | 集群
首先,redis作为一个高性能的key-value数据库,它有以下三个特点: 1, redis支持持久化, 即内存中数据可以持久化到磁盘,断电开机后可重新加载 2, 支持key-value类型的数据, 同时提供list, set, zset,hash等数据结构的存储 3, 支持数据备份,也就是master-slave模式的数据备份 主从 在redis中, 为了保证数...
Redis 主从/哨兵配置
Redis 主从/哨兵配置
Redis主从、哨兵、持久化
主从复制:1 Master可以拥有多个slave2 多个slave可以连接同一个master,还可以连接到其他的slave3 主从复制是不会阻塞master的,在同步数据时,master可以继续的处理client请求4 提供系统的伸缩性主从复制的过程:1 slave与master建立连接,发送sync同步命令2 master会开启一个后台的进程,将数据库快照(dump.RDB文件)全量保存到文件中...
redis哨兵+主从+redis集群
一、redis哨兵+主从的问题 假设我们在一台主从机器上配置了200G内存,但是业务需求是需要500G的时候,主从结构+哨兵可以实现高可用故障切换+冗余备份,但是并不能解决数据容量的问题,用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。 为了最大化利用内存,可以采用cluster群集,就是分布式存储。即每台redis存储不同的内容。 Redis...
redis主从+哨兵的集群
目录: 1、redis部署准备工作... 2 (1)编辑/etc/hosts文件,添加要搭建的两台机器ip跟机器名称... 2 (2)关闭机器防火墙(三台服务器) 2 (3)将安装包redis-3.2.11.tar.gz拉到两台机上的/data/redis_tool路径下进行解压... 3 2、Redis安装部署过程... 3 (1)给两台机器安装依赖,如果需要其他依赖软件,请根据re...
redis主从和哨兵配置
redis主从以及哨兵配置 本文采用一主两从 共三台服务器 主redis:192.168.1.220 从redis1:192.168.1.221 从redis2:192.168.1.221 一.redis安装 每台服务器上安装redis $ wget http://download.redis.io/releases/redis-5.0.3.tar.gz $ tar xzf redis-5.0.3...
Redis 主从集群搭建及哨兵模式配置
Redis 主从集群搭建及哨兵模式配置 最近搭建了redis集群及哨兵模式,为方便以后查看特此记录下来; 1.Redis安装 2.主从架构   2.1 Redis主从架构图      2.2Redis主从结构搭建   Redis集群不用安装多个Redis,只需复制多个配置文件,修改即可;   搭建redis master   进入redis安装...
Redis部署集群主从、哨兵模式
1 首先安装redis 1.1、Redis-Sentinel高可用模式的介绍可参考Sentinel 提供了监控、通知、并为client提供配置的作用。 1.2、下载:wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2 安装Redis 解压redis-3.2.8安装包,进入src文件夹 安装...
redis 哨兵(主从)
主配置文件内容 port 8001 appendonly no bind 192.168.59.129 requirepass &quot;123456&quot; maxmemory 200mb masterauth &quot;123456&quot; 另外两从配置文件 port 8002 appendonly no bind 192.168.59.129 requirepass &quot;123456&quot; maxmemory 20...
redis主从架构 —— 哨兵
redis配置 replicaof 192.168.88.132 7001 #设置redis登录密码 requirepass "zcc123" #主从认证密码,否则主从不能同步 masterauth "zcc123" bind 192.168.88.132 port 7002 daemonize yes 哨兵配置 port 26379 daemonize yes #保护模式如...
redis的主从、哨兵配置
当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个slave的服务。 一、Master&amp;Slave是什么? 也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机 的master/slaver机制,Mas...
Redis 主从集群搭建+哨兵模式监控
Redis 主从集群搭建+哨兵模式监控 redis分为单机、主从集群、redis cluster集群。 主从集群+哨兵:适合机器少的情况下进行部署。分为三个哨兵、一个主节点、多个从节点。 可以做到: Redis主从复制【主节点负责写操作,从节点进行读操作】: 1.当从库和主库建立MS关系后,会向主数据库发送SYNC命令   2.主...
Redis主从+高可用(sentinel 哨兵模式)
文章目录redis 主从复制redis 哨兵(sentienl)模式 redis 主从复制 环境:2台 centos7 安装包准备: wget http://download.redis.io/releases/redis-4.0.6.tar.gz 部署 master 和 slave 分别部署在不同的KVM tar -xzvf redis-4.0.6.tar.gz cd redis-4.0.6 ...
redis主从哨兵模式搭建实例
最近因项目需要搭建redis环境,有多种模式可以选择,其中比较经典的一种模式是主从哨兵模式,下面进行这一模式的搭建演示 一台虚拟机搭建一个redis主从哨兵模式简单集群:一主、一从、一哨兵 虚拟机版本 Red Hat 4.1.2-48 内存1G redis版本 redis-2.8.19.tar.gz(仅举例用,版本不规定) 1、上传redis安装包及规划目录 root...
[redis]-centos7 安装redis主从及配置哨兵模式
Centos7 安装redis主从及配置哨兵模式 redis5.0.4的主从版本搭建可以参考下面的链接 https://blog.csdn.net/xujiamin0022016/article/details/95397272 ip 10.6.11.164 主 10.6.11.189 从 10.6.11.201 从 安装redis 安装依赖 yum insta...
Redis的三种模式:主从、哨兵、集群
前言 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。普遍用于目前主流的分布式架构系统中,关于redis的详细介绍,见另一篇文章: redis的安装与介绍 redis的多机数据库实现,主要分为以下三种: Re...
redis主从加哨兵模式的实践
redis是一个基于内存的kv数据库,其吞吐性能可想而知,随着redis应用得越来越广泛,以及对它的依赖程度越来越高,它的高可用便成了需要考虑的一个很重要的点。 于是今天在自己电脑上实践了一下redis的主从模式和哨兵监控。 基本架构:一主二从,加一哨兵 先为master和slave编辑配置文件: 为它们配置ip和端口,这里6379是master,6380和6381为slave...
redis安装-主从-哨兵模式
redis安装详解下载安装包 wget http://download.redis.io/releases/redis-3.2.9.tar.gz tar -zxvf redis-3.2.9.tar.gz如下图 cd redis-3.2.9 执行make命令: [wepay@wy188-app104 redis-3.2.9]make[wepay@wy188−app104redis−3.2.9] ma
SpringBoot实战之16 整合redis哨兵
前言 对springboot整合redis感兴趣的可以参考此篇博客 SpringBoot实战之13 整合redis 对spring整合redis感兴趣的参考这里 spring实战3 spring整合单例redis spring整合哨兵参考这里 spring实战4 spring整合redis哨兵 本篇介绍springboot整合哨兵模式 开始 建项目 新建springboot-...
springboot整合redis哨兵方式配置
1.springboot工程引入redis &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-boot-starter-data-redis&amp;lt;/artifactId&amp;gt; &amp;lt;/dependency&amp;gt; 2.applicat...
Springboot整合Redis-sentinel哨兵模式集群
Springboot整合Redis-sentinel哨兵模式集群 近日在项目中整合redis缓存,查了好多SpringBoot整合Redis的博客。经过多日研究测试终于成功了。特留博客供查阅。 1. pom.xml 添加Redis依赖 &amp;amp;amp;lt;!-- redis --&amp;amp;amp;gt; &amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp
2.1.10.1.Redis高可用方案-哨兵模式-SpringBoot整合
<p style="font-size:14px;">n <span style="font-size:small;">随着国内IT事业的兴起,越来越多的小伙伴也投身到了开发这个相对高薪的行业来。很多同学进入的方式都是零基础通过培训或者看视频自学,在工作一两年后,发现由于自己的基础太薄弱,想进一步提高自己的能力变得非常 困难。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">现在市面上的视频教程,主要有一下两类:第一类是纯理论的,比如框架、算法、虚拟机等;另一类是Demo级别的项目,如各大培训机构的项目课程。从业这么多年,学习了大量的视频教程,也跟很多毕业三年左右的程序员做过交流,但一直没发现一套特别好的教程,能让小伙伴们从零基础一直到高级进阶,持续得到学习。在工作中,他们也反馈,视频教程各种高大上的技术堆砌,而在实际开发中呢,大部分技术都没有用到,就算是用,也完全不是像教程中那么用的。在面试中,你跟夸夸其谈十分钟,面试官一句,请问你在项目中是怎么用这个技术的,在使用的时候有什么问题?遇到这样的问题,大部分同学们都直接熄火,完全不知所措,为啥呢,因为他在项目中根本没有用过这个技术,只是看了文档、视频,只是跟着教程做了Demo。而技术跟业务如何结合,这应该是大部分同学在工作中最薄弱的环节。甚至,有些同学会唯技术论,面对公司的业务,会去抱怨公司用的技术不新,认为业务不重要。但我要纠正的是,技术的出现本来就是为业务服务的,离开业务谈技术那就是耍流氓。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">早在两年前,我就萌生了这样的想法,既然国内的环境造成了面试修地球,上班拧螺丝的情况,那么我能不能结合我自己做的真实项目,脱敏后给大家分享出来,让各位同学能有一个真实的项目环境去边学边提高,所以,也就有了《从0开始用Java做"智慧农业物联网"》课程的诞生。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">学习本课程的基本要求:有Java基础,学习过Spring,SpringMVC,Mybatis框架,做过简单项目以上的同学均可学习。但并不代表,本课程就是个入门教程,对于有开发经验的同学们,物联网这个行业是个朝阳产业,也可以说是未来十年发展的蓝海。那我相信,有实体经济支撑的行业绝不会像互联网行业有那样大的泡沫,也绝不会让你工作的没有安全感。对于有志于从事物联网相关工作的同学,对于想从各方面提升自己的各位同学们来说,本课程也非常的适合你们去学习。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">我从12年就开始接触物联网项目,做过智慧猪场、智慧农场、猪联网、云医疗等相关项目,也做过互联网行业,兜兜转转一圈下来,自认为还是积累了很多的经验和教训,那我都会在我课程中对这样的知识有所分享。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">同时,在这个课程中,我既是产品,又是设计,还是开发,还是运维,也是客户,我会从一个项目的全生命周期给大家进行介绍,并且都有相关的落地方案。这样,同学们的眼光就会有所延展,不会仅仅局限在开发这一亩三分地上。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">本课程的亮点:我只能说,亮点很多,很多。。。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">核心如下:产品经理眼中的产品、数据库设计、如何把一个需求变成代码、如何跟物联网设备交互、如何上线一个项目、在需求变更后如何做到不跟产品撕逼。。。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">看到了吧,我不会只让你知道那些高大上的技术点,我向你们学会的是如何做一个完美的产品!</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">在这个课程中,你会看到太多太多跟其他教程不同的地方,你看到的不是Demo级别的案例,你看到的绝对是一个工业级别的实现方案。我也希望通过这个课程,同学们能进一步升华自己的视界,你所站的高度,你看问题的不同角度,将决定未来你成长的上限。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">对于本课程的成长忠告:本课程的录制会持续很长时间,是的,你没看错,是很长时间,目前我的预期,起码是在年底之前不会结束,为什么要这样安排,因为我想要分享的内容实在太多,我也不想对课程进行拆分,也不想草草结束,所以,你所能得到的收获一定会足够大,他没有终点。。。</span>n</p>n<p style="font-size:14px;">n <span style="font-size:small;">最终达到的效果:在业务中学技术点,通过技术点让业务变得更优美!</span>n</p>
Docker下redis与springboot三部曲之二:安装redis主从和哨兵
在上一章《 Docker下redis与springboot三部曲之一:极速体验》我们快速体验了springboot访问单机版redis,今天的实战中我们在Docker下搭建redis主从和哨兵服务; 原文地址:http://blog.csdn.net/boling_cavalry/article/details/78995407 实战环境 本次实战的环境是Ubuntu16,安装的Docke
Redis单例、主从、哨兵、集群
redis安装: (1)准备安装文件; (2)src文件下 make MALLOC=libc (3)make install 注:可能存在环境缺失报错,根据提示安装环境就好了。 一、单例 劣势:只有1个实例,存在备份问题,数据体量大时影响性能。 1、单例启动 :redis-server ./redis.conf &amp;amp; 2、连接:redis-cli -p 6379 二、主从 ...
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表