2015-06-09 44 views
1

我们已经设置了一组队列和骆驼路由来使用队列中的消息 - 队列中存在ActiveMQ服务器和Apache Karaf中的骆驼路由。我们建立了一个具有多个karaf节点的集群;问题在于这些消息被不同节点中的骆驼路由读取;有没有办法了解选择特定消息或消息集的消费者?我搜索了一下,但没有得到任何回应,所以我在这里寻求你的帮助。在ActiveMQ集群中,如何找到选择特定消息或消息集的消费者?

回答

0

你可以尝试使用的组合:

  1. ActiveMQ的TraceBrokerPathPluginConfigure这个插件在集群中的每个节点。当消息穿过节点时,它会将'brokerName'追加到消息中的JMS头部。
  2. 启用骆驼语境Message History:配置你的骆驼背景下启用消息历史记录。这将包括与org.apache.camel.MessageHistory具有路由元数据列表的交换性能。
  3. 启用trace或执行EventNotifier将您需要的信息写入日志文件。
  4. (可选)实施相关标识符以更好地识别对话/交易中的消息流。
+0

有趣,让我试试这一个,让你知道。 –

+0

我可以用TraceBrokerPathPlugin那就够了。 –

0

除了建议性消息之外,ActiveMQ中没有使用消息的跟踪。解决方案是让每个骆驼消费者宣布它以某种方式处理消息。有很多方法可以做到这一点,比如写入日志文件,根据频率和需要将日志发送到数据库,电子邮件或其他任何东西。当然,你可以写一些插件或类似的ActiveMQ,并让它记录你的需要,但这似乎很尴尬。

1

为了调试的目的,你可以使用Hawtio来监控你的骆驼节点和跟踪由路径所消耗的消息。您也可以在那里将日志记录添加到您的路线中。