2017-03-23 9 views
1

RabbitMQ Javaクライアント(私のプロデューサとコンシューマは遠く離れています)にChannel shutdown: connection errorという問題が頻繁に発生します(24.133.241:5671スレッド以下、名前は切り捨てられます)。ほとんどの場合、消費者はハートビートを有効にしたときに自動的に再起動されます(15秒)。しかし、いくつかの例はChannel shutdown: connection errorのみであったが、Consumer raised exceptionおよびRestarting ConsumercTaskExecutor-4スレッド未満)はありませんでした。AMQPチャネルがシャットダウンしてもコンシューマが常に再起動するとは限りません

私の現在の回避策は、アプリケーションを再起動することです。誰もがこの問題についていくつかの光を当てることができますか?

2017-03-20 12:42:38.856 ERROR 24245 --- [24.133.241:5671] o.s.a.r.c.CachingConnectionFactory 
     : Channel shutdown: connection error 
2017-03-20 12:42:39.642 WARN 24245 --- [cTaskExecutor-4] o.s.a.r.l.SimpleMessageListenerCont 
ainer : Consumer raised exception, processing can restart if the connection factory supports 
it 
... 
2017-03-20 12:42:39.642 INFO 24245 --- [cTaskExecutor-4] o.s.a.r.l.SimpleMessageListenerCont 
ainer : Restarting Consumer: tags=[{amq.ctag-4CqrRsUP8plDpLQdNcOjDw=21-05060179}], channel=Ca 
ched Rabbit Channel: AMQChannel(amqp://[email protected]:5671/,1), conn: [email protected] 
54 Shared Rabbit Connection: [email protected] [delegate=amqp://[email protected] 
.241:5671/], acknowledgeMode=NONE local queue size=0 

答えて

0

一般的に、これは消費者スレッドがユーザーコードのどこかに「つぶれている」ため、壊れた接続に反応できないためです。

ネットワークに問題がある場合、おそらくソケットに読み書きが滞っている可能性があります。どのI/O操作にもタイムアウトが設定されていることを確認してください。

次回は、消費者スレッドが何をしているのかを見るためにスレッドダンプを取る。

+0

ご返信ありがとうございます。既存のrabbitmq設定を有効にして問題を軽減することができますか? –

+0

いいえ。私が言ったように、それは一般にユーザーコードの問題です。リスナーが詰まっている場合、フレームワーク(またはRabbitMQ)が行うことができることがあります。問題が何であるか把握するにはスレッドダンプが必要です。 –

関連する問題