有没有一种方法(第三方软件或编程)来监控消息到达特定队列的时间以及它被消耗的时间?
例如,消息在17:14:22 565到达,在17:14:22 598消费,或者消息被排入队列N毫秒
我读过有关Statistics plugin的文章,但它只给出了排队消息的最大和最小次数
发布于 2017-03-03 03:25:39
您可以使用http://activemq.apache.org/advisory-message.html
下面的第一个示例在消息被传递到代理时被通知。消费消息时要通知的第二个示例。
AdvisorySupport.getMessageDeliveredAdvisoryTopic()
AdvisorySupport.getMessageConsumedAdvisoryTopic()请参阅下面的示例,以访问消息属性,如创建时间、消息到达或离开代理时的进出时间。以下是属性http://activemq.apache.org/activemq-message-properties.html的列表
发布于 2017-03-03 10:35:44
一种方法是编写自己的插件。(http://activemq.apache.org/developing-plugins.html)
它非常简单,其效果与您更改activemq broker代码时的效果相似。
您可以扩展BrokerFilter类,并覆盖它的方法,如postProcessDispatch()、send()。然后您可以记录时间,或者在您自己的代码中记录任何您想要的时间。
我写了一个简单的例子(https://github.com/lcy362/FoxActivemqPlugin/blob/b54d375a6a91a9ec418e779deb69a8b11f7d985a/src/main/java/com/mallow/activemq/FoxBrokerPlugin.java),希望能对你有所帮助。
https://stackoverflow.com/questions/42563558
复制相似问题