JedisConnectionException: java.net.ConnectException: Connection refused


出現問題

我遇到的一個問題,在連接redis的時候出現了錯誤!錯誤如下:

JedisConnectionException: java.net.ConnectException: Connection refused

看錯誤是 連接被拒絕,網上查了報這個錯誤的相關解決方案,沒有一個可以解決的!


問題就是上面的報錯的問題,先說明一下我出現這個問題的背景或者環境吧。

環境說明

redis集群部署在 A(10.102.1.2)服務器上部署,我在B(10.102.1.1)服務器上進行應用的部署,代碼中配置好了連接redis集群的配置。

過程描述

啟動部署的應用,報上面的錯誤,各種排查,無法解決!

  • 使用了 ping,服務器之間是通的。
  • 使用了 telnet ,B服務器能telnet上Aredis 的每個端口。沒有任何問題!

因為 A(10.102.1.2)服務器的redis也有其他項目的應用在使用,那說明redis本身是沒有問題的。

然后去找看到redis集群配置的node.conf 看到如下

node.conf

怎么配置的IP都是本地的回環地址(127.0.0.1)!!!

然后去問其他項目在使用這個redis的應用服務是部署在那台機器上的
回答說:和redis是一台機器!

那這就好接受了,我的連接redis代碼和另外一個項目的連接方法一模一樣,另一個項目和redis部署在一台機器可以連接上,我的和redis部署不在一台機器就連接不上!那說明這個127.0.0.1 這種集群的配置是有坑的!

因為這台機器這個redis集群還在使用,不在重新修改,我於是在A這台機器上有搭建了一套集群,創建集群的時候使用 服務器IP創建!如下圖
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,避免我上面的問題,本機器應用可以訪問,其他服務器應用訪問有問題!

附:Redis創建高可用集群教程【Windows環境】

最后一張圖,上面的7080這一套是我自己配置的,下面的6380這一套是之前A(10.102.1.2)服務器上原本有的!

over!


如果您覺得這篇博文對你有幫助,請點贊或者喜歡,讓更多的人看到,謝謝!

如果帥氣(美麗)、睿智(聰穎),和我一樣簡單善良的你看到本篇博文中存在問題,請指出,我虛心接受你讓我成長的批評,謝謝閱讀!
祝你今天開心愉快!


歡迎訪問我的csdn博客,我們一同成長!

不管做什么,只要堅持下去就會看到不一樣!在路上,不卑不亢!

博客首頁 : http://blog.csdn.net/u010648555

© 每天都在變得更好的阿飛


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM