2017-05-18 77 views
0

當我在兩臺不同的服務器上部署redis服務器和spring服務器並嘗試通過我的應用程序連接到spring服務器時,出現此問題。春季服務器無法使用jedis客戶端連接到redis

應用詳細信息:
我們有移動應用程序使用腳踏板發佈gps座標到春季服務器。在Spring服務器中,我們創建jedis pubsub連接並將這些gps數據發佈到我們的Web應用程序,並且Web用戶訂閱這些jedis pubsub連接。

庫版本:
跺腳:1.7.1
jedis:2.8.1
春:4.3.0

工作方案:
*配置彈簧服務器在遠程我的本地機器和Redis的服務器生產服務器。
*在部署spring服務器的同一遠程服務器上部署spring服務器和遠程服務器和redis服務器。

部分工作場景:
*在部署spring服務器的遠程服務器和不同遠程服務器上的遠程服務器和redis服務器上部署spring服務器。在這種情況下,我使用redis cli監視redis服務器,並且可以看到「HGETALL」,「PUBLISH」關鍵字及其數據。但同時我得到了下面的春天服務器錯誤:

造成的:

java.net.ConnectException: Connection refused (Connection refused) 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at redis.clients.jedis.Connection.connect(Connection.java:158) 
    ... 4 more 
redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused (Connection refused) 
    at redis.clients.jedis.Connection.connect(Connection.java:164) 
    at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:80) 
    at redis.clients.jedis.Connection.setTimeoutInfinite(Connection.java:68) 
    at redis.clients.jedis.Jedis.subscribe(Jedis.java:2626) 
    at shipxpress.pubsubservice.controllers.SubscriberThread.run(MainController.java:227) 

彈簧服務器可以成功depoyed到服務器,當jedis嘗試發佈或subscripe的連接出現異常。 我可以成功地ping命令從我們部署通過Redis的-CLI和彈簧服務器的服務器Redis的服務器Redis的服務器prtected模式是不與和綁定IP設置爲0.0.0.0

鏈接: 我去通過以下鏈接,但沒有運氣
Redis bind to more than one IP

https://github.com/xetorthio/jedis/issues/1405

Cannot connect to redis using jedis

+0

的可能的複製[java.net.ConnectException:連接被拒絕(http://stackoverflow.com/questions/6876266/java-net-connectexception - 連接 - 拒絕) – mp911de

+0

不,這是不一樣的問題,因爲我的工作正常,當春季服務器在我的機器。它在情況3中不起作用,其中spring服務器和redis服務器位於兩個不同的遠程服務器中。 –

回答

0

這個問題指的春天遠程服務器是不是ABL e在默認的Redis端口上與其他遠程服務器(Redis服務器)進行通信。 也許您可以通過嘗試從控制檯使用netstat從其他遠程服務器訪問遠程Redis服務器來確認此事。

0

我有同樣的問題,最簡單的辦法是

找到下面的行放在redis.conf文件,並註釋掉:

bind 127.0.0.1 

通過在它的前面加一個#

# bind 127.0.0.1 

並將行protected-mode yes更改爲protected-mode no

保存redis.conf並使用config文件重新啓動redis

redis-server /configFileLocation 
相關問題