最近我们遇到了消费者从队列中获取消息但未到达绑定到该队列的侦听器的情况。我们能够做出这个断言,因为我们的侦听器上有一个拦截器(它打印一条日志消息),这些拦截器没有为这些消息触发。一旦我们重新启动服务器(tomcat),消息就被消耗并被激活。
我们想知道这种行为的原因。我们分析了线程转储但没有成功。
答案 0 :(得分:1)
这些问题总是由两个问题之一引起:
你似乎已经淘汰了第一个(假设你的分析是正确的)所以它很可能是第二个。
您可以在连接上启用心跳,以避免网络认为连接处于空闲状态。请参阅RabbitMQ文档。