ActiveMQ定时删除过期Topic和Queue

 

ActiveMQ技术学习 https://www.itkc8.com

备注:(删除不活动的队列(Delete Inactive Destinations))

 

 


一般情况下,ActiveMQ的Topic和Queue在不使用之后,可以通过web控制台或是JMX方式来删除掉。
当然,也可以通过配置,使得broker可以自动探测到无用的队列(一定时间内为空的队列)并删除掉,回收响应资源。
实现定时自动清理无效的Topic和Queue需要设置三个属性。
activemq.xml配置如下:
节点上新增:

[html] view plain copy print?

  1. <broker xmlns="http://activemq.apache.org/schema/core" schedulePeriodForDestinationPurge="10000">  
  2.   
  3.   
  4.    <destinationPolicy>  
  5.       <policyMap>  
  6.          <policyEntries>  
  7.             <policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/>  
  8.          policyEntries>  
  9.       policyMap>  
  10.    destinationPolicy>  
  11.          
  12.  broker>  

 

 

 

 

 


schedulePeriodForDestinationPurge:10000  每十秒检查一次,默认为0,此功能关闭


gcInactiveDestinations: true  删除掉不活动队列,默认为false


inactiveTimoutBeforeGC:30000 不活动30秒后删除,默认为60秒


由于ActiveMQ使用时自动创建Destination,并且默认情况下不会删除掉,这种只增加不减少,导致在queue创建频繁的情况下,本功能非常有用。

备注:(删除不活动的队列(Delete Inactive Destinations))


一般情况下,ActiveMQ的Topic和Queue在不使用之后,可以通过web控制台或是JMX方式来删除掉。
当然,也可以通过配置,使得broker可以自动探测到无用的队列(一定时间内为空的队列)并删除掉,回收响应资源。
实现定时自动清理无效的Topic和Queue需要设置三个属性。
activemq.xml配置如下:
节点上新增:

[html] view plain copy print?

  1. <broker xmlns="http://activemq.apache.org/schema/core" schedulePeriodForDestinationPurge="10000">  
  2.   
  3.   
  4.    <destinationPolicy>  
  5.       <policyMap>  
  6.          <policyEntries>  
  7.             <policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/>  
  8.          policyEntries>  
  9.       policyMap>  
  10.    destinationPolicy>  
  11.          
  12.  broker>  

 

 


schedulePeriodForDestinationPurge:10000  每十秒检查一次,默认为0,此功能关闭


gcInactiveDestinations: true  删除掉不活动队列,默认为false


inactiveTimoutBeforeGC:30000 不活动30秒后删除,默认为60秒

ActiveMQ技术学习 https://www.itkc8.com
由于ActiveMQ使用时自动创建Destination,并且默认情况下不会删除掉,这种只增加不减少,导致在queue创建频繁的情况下,本功能非常有用。

你可能感兴趣的:(MQ)