AMQP通道关闭但消费者并不总是重启

时间:2017-03-23 14:41:06

标签: java rabbitmq spring-rabbit

我在RabbitMQ Java客户端(我的生产者和消费者相距甚远)中经常出现Channel shutdown: connection error个问题(在24.133.241:5671线程下,名称被截断)。大部分时间消费者都会自动重启,因为我启用了心跳(15秒)。但是,有些实例只有Channel shutdown: connection error但没有Consumer raised exception而没有Restarting Consumer(在cTaskExecutor-4主题下)。

我目前的解决方法是重启我的应用程序。任何人都能对这件事有所了解吗?

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://21-05060179@10.24.133.241:5671/,1), conn: Proxy@7ec317
54 Shared Rabbit Connection: SimpleConnection@44bac9ec [delegate=amqp://21-05060179@10.24.133
.241:5671/], acknowledgeMode=NONE local queue size=0

1 个答案:

答案 0 :(得分:0)

一般来说,这是由于消费者线程被卡住了#34;在某个用户代码中,所以它无法对断开的连接作出反应。

如果您遇到网络问题,可能是它无法读取或写入套接字;确保为任何I / O操作设置超时。

下次它发生时需要一个线程转储来查看消费者线程正在做什么。