ActiveMQ - 限制队列中待处理消息的数量而不影响生产者

问题描述 投票:0回答:1

ActiveMQ 5.15.4

上下文:我正在处理的生产者发布到许多不同的队列。

我试过的事情:

1.

<policyEntry queue=">" producerFlowControl="true" memoryLimit="10 mb">
</policyEntry>

这正确地限制了队列大小,但它限制了生产者,如here所述。这会导致其他无问题的队列成为af

2.

<policyEntry queue=">" producerFlowControl="false" memoryLimit="10 mb">
</policyEntry>

似乎没有限制队列大小。

3.

我曾尝试使用messageEvictionStrategy和pendingMessageLimitStrategy,但它们似乎不适用于队列,只适用于主题。

我错过了其他一些可能的策略吗?

activemq
1个回答
0
投票

您需要在消息上使用生存时间值来控制它们在队列中停留的时间,否则代理将使用流控制阻止生产者,或者如果禁用它则将消息分页到磁盘。队列通常不用于固定大小的消息传递,因为队列上的假设是内容很重要,除非发送者通过TTL允许,否则不应丢弃。

© www.soinside.com 2019 - 2024. All rights reserved.