做一个积极的人
编码、改bug、提升自己
我有一个乐园,面向编程,春暖花开!
涌现问题
我碰着的一个问题,在连接redis的时候涌现了缺点!
缺点如下:
JedisConnectionException: java.net.ConnectException: Connection refused
看缺点是 连接被谢绝,网上查了报这个缺点的干系办理方案,没有一个可以办理的!
问题便是上面的报错的问题,直接翻译非常便是连接谢绝。 一样平常情形可能便是网络问题或者配置地址禁绝确。
为了大概还原现场,先解释一下我涌现这个问题的背景或者环境吧。
环境解释
redis集群支配在 A(10.102.1.2)做事器上支配,我在B(10.102.1.1)做事器上进行运用的支配,代码中配置好了连接redis集群的配置。
过程描述
启动支配的运用,报上面的缺点,各种排查,无法办理!
•利用了 ping,做事器之间是通的。•利用了 telnet ,B做事器能telnet上A redis 的每个端口。没有任何问题!
由于 A(10.102.1.2)做事器的redis也有其他项目的运用在利用,那解释redis本身是没有问题的。
然后去找看到redis集群配置的node.conf 看到如下
怎么配置的IP都是本地的回环地址(127.0.0.1)!!!
然后去问其他项目在利用这个redis的运用做事是支配在那台机器上的 回答说:和redis是一台机器!
(到这里诡异的缘故原由大概知道了)
那这就好接管了,我的连接redis代码和其余一个项目的连接方法千篇一律,另一个项目和redis支配在一台机器可以连接上,我的和redis支配不在一台机器就连接不上!
那解释这个127.0.0.1 这种集群的配置是有坑的!
由于这台机器这个redis集群还在利用,不让重新修正,我于是在A这台机器上有搭建了一套集群(只是用于开拓),创建集群的时候利用 做事器IP创建!
如下图
然后在运用中修正了redis集群的端口,重启做事,创造连接正常!
总结
本次问题就这样办理 了,花费了很多的韶光,刚开始以为代码配置有问题,改了几次代码和配置,都弗成!
末了就在沟通中摧残浪费蹂躏了很多韶光,我说我这边不能连接redis,对方供应redis做事的人说我们这边连接的好好的,为什么你连接有问题!
我还能说什么!
!
!
末了我自己查看那台做事器上的redis配置,创造上面配置的可疑点 127.0.0.1 ,自己重新配置一套,验证自己的猜想,末了创造的确便是这个集群创建的问题。
创建集群的命令:
redis-trib.rb create --replicas 1 10.102.1.1:7080 10.102.1.1:7081 10.102.1.1:7082 10.102.1.1:7083 10.102.1.1:7084 10.102.1.1:7085
把稳:如果在做事器上创建redis集群,请记得利用做事器IP,不要利用127.0.0.1,避免上面的问题,本机器运用可以访问,其他做事器运用访问有问题!
末了一张图,上面的7080这一套是我自己配置的,下面的6380这一套是之前A(10.102.1.2)做事器上原来有的!
推举阅读
从源码角度看JedisPoolConfig参数配置
Java编程技能乐园:一个分享编程知识,用技能的角度看天下。随着老司机一起学习干货技能知识,每天进步一点点,让小的积累,带来大的改变!欢迎关注!
持续推送有趣有料的技能文章~如果以为文章对你有收成,点个赞呗!