【问题标题】:How to drop a enqueued message in activemq?如何在activemq中删除排队的消息?
【发布时间】:2017-12-22 10:58:27
【问题描述】:

当生产者快速发送消息时,我正在处理一个项目,并且代理应该将所有消息排入队列,但在达到内存(或其他,如最大消息数)限制时丢弃最旧的消息。我试过弄乱constantPendingMessageLimitStrategy 参数,但它似乎不起作用。是否可以通过编辑 activemq.xml 文件中的 broker 部分来实现?

<destinationPolicy>
        <policyMap>
          <policyEntries>
    <policyEntry queue="*.prioritized" prioritizedMessages="true" useCache="false" expireMessagesPeriod="0" queuePrefetch="1" memoryLimit="10mb" producerFlowControl="true">
        <pendingQueuePolicy>
        <vmQueueCursor/>
        </pendingQueuePolicy>
        </policyEntry>
    <policyEntry queue="TestNotifications" expireMessagesPeriod="10" memoryLimit="50mb" producerFlowControl="true">
        <pendingQueuePolicy>
        <vmQueueCursor/>
        </pendingQueuePolicy>
        </policyEntry>
    <policyEntry queue=">" expireMessagesPeriod="0" memoryLimit="50mb" producerFlowControl="true">
        <pendingQueuePolicy>
        <vmQueueCursor/>
        </pendingQueuePolicy>
        <pendingMessageLimitStrategy>
                <constantPendingMessageLimitStrategy limit="10"/>
        </pendingMessageLimitStrategy>
        </policyEntry>

    <policyEntry topic=">" >
              <pendingMessageLimitStrategy>
                <constantPendingMessageLimitStrategy limit="100"/>
              </pendingMessageLimitStrategy>
            </policyEntry>
          </policyEntries>
        </policyMap>
    </destinationPolicy>

【问题讨论】:

    标签: activemq message-queue


    【解决方案1】:

    PendingMessageLimitStrategy 类型仅适用于主题,它不会影响队列。队列消息存储在内存中,并在达到限制时分页到磁盘(基于游标配置)或存储。如果您希望消息被丢弃,那么您需要在消息上设置一个 TTL,并允许代理在它们过期时定期丢弃它们。

    【讨论】:

    • 我已经为我的消息设置了一个 TTL,但是它们仍然没有被丢弃。我如何允许经纪人丢弃它们?我试过&lt;sharedDeadLetterStrategy processExpired="false" /&gt;。我使用的是 5.13.2 版本。
    • 我已经将其更改为 3000 并没有帮助,但据我所知,这并不重要,因为我正在“TestNotifications”队列中对其进行测试。
    猜你喜欢
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多