gpt4 book ai didi

java - 当消费者未确认消息时,ActiveMQ 停止向队列消费者发送消息

转载 作者:行者123 更新时间:2023-12-01 14:17:40 28 4
gpt4 key购买 nike

我们有一个用例,其中我们只创建一个消费者来处理队列中的消息。消息处理器在确认之前累积一定数量的消息。以异步方式接收消息并使用事务 session 。消息的大小非常小。

Active MQ 在收到一定数量的消息后停止向唯一消费者发送更多消息并等待确认。我们尝试过诸如consumer.prefetchSize、consumer.maximumPendingMessageLimit之类的解决方案;但没有任何作用。我们尝试了类似的用例,使用只有一个订阅者的持久主题,效果很好。

有人遇到过类似的 activemq 问题/行为吗?我们尝试了不同论坛上提到的许多方法,但没有一个有帮助。

ActiveMQ版本:ActiveMQ 5.6.0
队列配置:持久队列
消费者:异步并使用事务 session 作为确认模式

任何帮助或建议将不胜感激。谢谢。

最佳答案

我尝试了很多不同的配置来通过设置不同的 activemq 属性(例如预取策略、maxpagesize 等)来解决此问题,但没有一个真正有帮助。引用@Jake's我通过 JMX 了解了如何使用 JMX 监控 activemq JConsole 。这是一个非常方便的工具来监控和管理您的 activemq。以下是一些您可能会觉得有用的文章。
1.Monitoring activemq
2.Connecting activemq JMX using JConsole

通过监视队列属性,我发现 memoryLimit 属性分配给它的值非常低(只有 1mb)。增加属性的值解决了我的问题。 JMS 开始发送消息而不等待确认。

出于测试目的,我更改了conf/activemq.xml配置文件中memoryLimit的值。

关于java - 当消费者未确认消息时,ActiveMQ 停止向队列消费者发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972270/

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