是否有可能在所有开始的使用者之间重新分配现有消息

时间:2020-04-14 19:50:09

标签: jms activemq-artemis

我有ActiveMQ Artemis。生产者生成1000条消息,消费者一一处理它们。现在,我想在两个使用者的帮助下处理此队列。我开始新的使用者,并且新消息在两个运行的使用者之间分配。我的问题:是否有可能在所有开始使用的消费者之间重新分配旧消息?

1 个答案:

答案 0 :(得分:1)

一旦消息由代理发送给消费者,则代理不能简单地重新调用它们,因为消费者可能正在处理它们。消费者可以取消消息返回队列(例如,通过关闭其连接/会话)。

我的建议是调整consumerWindowSize(在客户端的URL上设置),以便将适当数量的消息发送给您的使用者。默认consumerWindowSize为1M(1024 * 1024字节)。较小的consumerWindowSize意味着更多的客户端将能够并发接收消息,但这也意味着客户端将需要进行更多的网络往返,以通知代理在运行不足时分发更多的消息。您需要运行基准测试来找到适合您的用例和性能需求的consumerWindowSize值。