2017-05-18 25 views
0

私はredisサーバーとスプリングサーバーを2つの異なるサーバーに展開し、アプリケーションを通じてスプリングサーバーに接続しようとすると、この問題が発生します。jedisクライアントを使用してスプリングサーバーをredisに接続できません

アプリケーションの詳細:
私たちはstompを使用してspringサーバーにgpsの座標を公開するモバイルアプリケーションを持っています。 Springサーバーでは、jedis pubsub接続を作成し、それらのgpsデータをWebアプリケーションに公開し、Webユーザーはそれらのjedis pubsub接続に登録します。

ライブラリのバージョン:
ストンプ:1.7.1
jedis:2.8.1
春:4.3.0

の作業シナリオ:
は*リモートでの私のローカルマシンとRedisのサーバーに春のサーバーを展開プロダクションサーバー。
*リモートサーバーにスプリングサーバーを展開し、スプリングサーバーが展開されている同じリモートサーバーにサーバーを再インストールします。

一部作業シナリオ:
*スプリングサーバーをリモートサーバーに展開し、スプリングサーバーが展開されている別のリモートサーバーにサーバーを展開します。このシナリオでは、私はredis cliを使ってredis serverを監視し、そのデータとともに "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しようとすると例外が発生することができます。 私が行ってきました: ノーRedisの-CLIとRedisのサーバーprtectedモードを通じて、我々は春のサーバーを展開し、サーバーからRedisのサーバーにpingを実行されて正常にし、かつ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

可能な重複使用redisを再起動します(http://stackoverflow.com/questions/6876266/java-net-connectexceptionを-connection-refused) – mp911de

+0

スプリングサーバーが私のマシンにあるとき、私のものがうまく動作するので、これは同じ質問ではありません。バネサーバーとRedisサーバーが2つの異なる遠隔サーバーにあるケース3では機能しません。 –

答えて

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を保存し、[java.net.ConnectException:接続が拒否されました]のconfigファイル

redis-server /configFileLocation 
関連する問題