使用ActiveMQ监视代理重新交付
我们已经使用此配置配置了ActiveMQ代理和代理重新交付插件使用ActiveMQ监视代理重新交付,activemq,monitoring,jmx,Activemq,Monitoring,Jmx,我们已经使用此配置配置了ActiveMQ代理和代理重新交付插件 <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true"> <redeliveryPolicyMap> <redeliveryPolicyMap> <redeliveryPolicyEntries>
<redeliveryPlugin fallbackToDeadLetter="true"
sendToDlqIfMaxRetriesExceeded="true">
<redeliveryPolicyMap>
<redeliveryPolicyMap>
<redeliveryPolicyEntries>
</redeliveryPolicyEntries>
<!-- the fallback policy for all other destinations -->
<defaultEntry>
<redeliveryPolicy
maximumRedeliveries="15"
useExponentialBackOff="true"
initialRedeliveryDelay="5000"
useCollisionAvoidance="true"
backOffMultiplier="5"
maximumRedeliveryDelay="93600000" />
</defaultEntry>
</redeliveryPolicyMap>
</redeliveryPolicyMap>
</redeliveryPlugin>
插件按预期执行从队列中删除失败消息并按指定间隔重试
我们现在面临的问题是,我们需要监控每个队列当前等待重试的消息数量,因为它们在正常队列监控中不会显示为正在等待。我在ActiveMQ的JMX树中找不到任何与redeliveryPlugin相关的内容。消息存储在JobSchedulerStore中,它是与普通AMQ或JDBC存储区分开的存储区。该商店的可见性较低,但应该有一个MBean。您可以通过JMX获取一些信息,也可以通过发送设置了特殊头的JMS消息来获取信息。有一篇关于JMS风格管理的文章。从我所看到的情况来看,您只能查询在特定时间间隔内安排的消息,但这将为您提供整个消息,而不仅仅是元信息,这使得您不可能进行监视(例如,每X秒)当前计划的邮件数量。还是我遗漏了什么?不,监控能力有限。在主干上,MBean中有一些额外的方法来帮助监视。该项目是开源的,因此您可以提供所需的功能。