当前位置:   article > 正文

redisson-spring-boot-starter Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6381_caused by: org.redisson.client.redisconnectionexce

caused by: org.redisson.client.redisconnectionexception: unable to connect t

首先背景是这样得,正在开发一个防止重复提交得spring-boot-starter ,公司临时需要在单机笔记本部署一下sentinel redis 集群,为了简单我做了个了个docker-compose 以及一些redis.conf 和sentinel.conf ,然后用redis-cli 测试了下master节点,没问题,数据可以保存可以查询,觉得没问题了,于是开始继续我得工作,我的spring-boot-starter 内部引用的是ression ,想着反正笔记本的单机版本搭建完了,那我正好用ression 连接那个sentinel集群开发,就当测试了,但是启动后却一直报错如下:

Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6381

于是我开始排查是不是我哪里配置没有生效导致用了他默认的配置,但是排查了之后发现没有漏掉的配置,无奈之下只能开始跟踪ression 源码,功夫不负有心人,在sentinelConnectionManager 类的里面发现些问题

 在里面connection.sync 方法返回的slaves 居然多了两个 slave,本来我只有一个master ,两个slave,现在为了四个,而且其中还有俩是127.0.0.1:6381  127.0.0.1:6380

再来看  connection.sync 方法

 这个本身只是一个发送命令,所以返回值不可能是我们配置的程序配置出来的,而是确实从master 获取到了4个 slaves ,所以基本就确定了,肯定是服务端配置哪里有了问题,要不就是刚刚配置的有问题,要么就是原来笔记本的虚拟机离有一套redis服务干扰了新部署的集群,于是重新查看配置文件发现如下:

果然,这个 配置是原来的忘记改了,所以变成了自己注册自己,但后sentinel又将这个节点当作一个slave 返回给了主机,所以返回slaves 会多两个个127.0.0.1 6380 6381,然后在检验时候本地一直无法连接这俩ip 端口,会一直报错,改了之就没问题了,

总结起来还是自己马虎造成的问题,希望大家引以为戒

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/857685
推荐阅读
相关标签
  

闽ICP备14008679号