springBoot整合redis启动报错:event executor terminated

文章描述了在将redis从单机模式升级到一主两从三哨兵模式并整合到SpringBoot项目中时遇到的启动报错。问题源于客户端连接失败,进一步排查发现从节点端口未对外开放。通过开放从节点端口并重启服务解决了问题,强调了解决问题时需全面检查可能的错误源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springBoot整合redis启动报错:java.util.concurrent.RejectedExecutionException: event executor terminated

背景

redis一主两从三哨兵部署模式搭建完成后,需要整合springCloud项目,替换掉之前的redis单机模式,更改nacos配置中心中的redis配置之后,重启相关服务发现服务报错一直起不来。(ps:服务docker容器化部署的)

具体错误

在这里插入图片描述

问题分析

报错翻译过来就是:
拒绝的执行异常:事件执行器已终止,很明显是redisClient客户端服务出了问题,查了很多帖子都没有找到解决方案。听说可能是由于内存溢出的错误导致 eventloop 的状态为终止,我猜测应该是新的redis服务出了问题,就再次仔细查看启动日志,发现了另一个错误。具体如截图:
在这里插入图片描述
看到这个报错我似乎猜到了问题。这要说明一下,我的redis服务部署的是一主二从的模式,且是在一台服务器上,所以就只能开启三个不同的端口来启动三个Redis服务,主服务6479,从服务6480,6481端口,有可能是从服务的网络策略问题,在安装的时候我好想只开放了6479端口。

解决方法

开放从节点的服务端口,让外部服务可以访问到:
1.先开启防火墙:
systemctl start firewalld

2.开放指定端口的:
firewall-cmd --zone=public --add-port=6481/tcp --permanent

3…重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

再次重启服务发现启动不在报错了,有时候真的不能揪着一个问题不放,多看看有无更明显的报错,很明显我这里遇到的 event executor terminated 报错是由 哨兵模式的redis服务不可用引起的。

t-crm","weight":1.0}] org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: event executor terminated at org.springframework.data.redis.FallbackExceptionTranslationStrategy.getFallback(FallbackExceptionTranslationStrategy.java:53) at org.springframework.data.redis.FallbackExceptionTranslationStrategy.translate(FallbackExceptionTranslationStrategy.java:43) at org.springframework.data.redis.connection.lettuce.LettuceConnection.convertLettuceAccessException(LettuceConnection.java:268) at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.convertLettuceAccessException(LettuceStringCommands.java:799) at org.springframework.data.redis.connection.lettuce.LettuceStringCommands.set(LettuceStringCommands.java:180) at org.springframework.data.redis.connection.DefaultedRedisConnection.set(DefaultedRedisConnection.java:281) at org.springframework.data.redis.connection.DefaultStringRedisConnection.set(DefaultStringRedisConnection.java:955) at org.springframework.data.redis.core.DefaultValueOperations.lambda$setIfAbsent$11(DefaultValueOperations.java:310) at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:225) at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:185) at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:96) at org.springframework.data.redis.core.DefaultValueOperations.setIfAbsent(DefaultValueOperations.java:310) at com.springboot.cloud.common.core.util.RedisLock.lock(RedisLock.java:55) at com.taojue.agent.middle.utils.sequences.SequencesProviderImpl.getCode(SequencesProviderImpl.java:304) at com.taojue.agent.middle.utils.sequences.SequencesProviderImpl.getMaihuoDemandCode(SequencesProviderImpl.java:94)
03-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值