activemq消息积压处理

Posted 姚春辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了activemq消息积压处理相关的知识,希望对你有一定的参考价值。

在项目使用activemq时,客户端发送消息而没有得到回复(在不考虑消费者是什么问题的情况下),导致持久化消息不断积压而得不到释放,最后造

成队列堵塞而。。。

可以在配置文件中配置消息的过期时间和死信处理来防止消息的积压

配置消息过期时间使用timeStampingBrokerPlugin插件ttlCeiling限制消息的过期时间,zeroExpirationOverride表示消息的过期时间。

       zeroExpirationOverride值在大于ttlCeiling值时zeroExpirationOverride=ttlCeiling

[html] view plain copy

  1. <span style="white-space:pre">        </span><plugins>  

  2.               

  3.             <timeStampingBrokerPlugin ttlCeiling="60000" zeroExpirationOverride="60000" />  

  4.               

  5.         </plugins>  



配置死信处理可以有多重配置,我使用了不把过期消息保存在死信队列而是直接丢弃

[html] view plain copy

  1. <span style="white-space:pre">        </span><destinationPolicy>  

  2.             <policyMap>  

  3.                 <policyEntries>  

  4.                     <policyEntry queue=">" producerFlowControl="false"  

  5.                         memoryLimit="1mb">  

  6.                         <!-- 设定不保存过期消息到死信队列 -->  

  7.                         <span style="color:#ff0000;"><deadLetterStrategy>  

  8.                             <sharedDeadLetterStrategy processExpired="false"></sharedDeadLetterStrategy>  

  9.                 <span style="white-space:pre">            </span></deadLetterStrategy></span>  

  10.                           

  11.                         <pendingQueuePolicy>  

  12.                             <fileQueueCursor />  

  13.                         </pendingQueuePolicy>  

  14.                     </policyEntry>  

  15.                 </policyEntries>  

  16.             </policyMap>  

  17.         </destinationPolicy>  


以上是关于activemq消息积压处理的主要内容,如果未能解决你的问题,请参考以下文章

记一次生产ActiveMQ消息积压

activemq 消息阻塞优化和消息确认机制优化

在 ActiveMQ 中存储和处理消息

ActiveMQ:一条待处理消息但队列为空

ActiveMQ / JMS 消息处理程序测试

Activemq中待处理消息和入队计数之间的区别?