Spring AMQP Consumer停止接收消息

时间:2016-09-22 18:39:30

标签: rabbitmq spring-amqp

我正在使用Spring AMQP。 我的消费者已停止侦听消息,但日志中没有异常,我在线程转储中看不到任何死锁。 我有两台服务器正在收听10个队列。

当兔子的缓存模式:连接工厂是' CONNECTION'时,一切正常。 但当我把它改成' CHANNEL'这个问题经常出现。

从rabbitMQ UI控制台我可以看到有一条未确认的消息。 (确认模式是'自动')。 在我看来,客户端无法将确认发送回服务器。

我可以在我的线程转储中看到以下内容

"" prio=10 tid=0x00007f5f3823c000 nid=0x5faa waiting on condition [0x00007f5f847e2000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000007b83a5260> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
    at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
    at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.nextMessage(BlockingQueueConsumer.java:359)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:1000)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:989)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$700(SimpleMessageListenerContainer.java:82)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1103)
    at java.lang.Thread.run(Thread.java:745)

0 个答案:

没有答案