1. 程式人生 > >JedisConnectionException: java.net.ConnectException: Connection refused

JedisConnectionException: java.net.ConnectException: Connection refused

存在 都在 驗證 mta connect tails fontsize reat cte

出現問題

我遇到的一個問題,在連接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 看到如下

技術分享圖片

怎麽配置的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,避免我上面的問題,本機器應用可以訪問,其他服務器應用訪問有問題!

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

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

技術分享圖片


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

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


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

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

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

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

JedisConnectionException: java.net.ConnectException: Connection refused