gpt4 book ai didi

java - AMQP消费者(监听器适配器+SimpleMessageListenerContainer)持有消息

转载 作者:行者123 更新时间:2023-11-30 07:40:54 26 4
gpt4 key购买 nike

最近我们遇到了一种情况,消息被消费者从队列中取出,但没有到达与该队列绑定(bind)的监听器。我们之所以能够做出这个断言,是因为我们的监听器上有一个拦截器(打印日志消息),该拦截器不会为这些消息触发。一旦我们重新启动服务器(tomcat),消息就会被消耗并被确认。

我们想知道这种行为的原因。我们分析了线程转储,但没有成功。

最佳答案

此类问题总是由以下两个问题之一引起:

  • 容器线程“卡在”用户代码中
  • 某些网络组件(例如路由器)默默地关闭它认为空闲的连接,以便客户端和/或服务器不知道连接已关闭。

您似乎已经排除了第一个(假设您的分析是正确的),因此很可能是第二个。

您可以在连接上启用心跳,以避免网络认为连接空闲。请参阅 RabbitMQ 文档。

关于java - AMQP消费者(监听器适配器+SimpleMessageListenerContainer)持有消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com