使用Apache Camel的Apache ActiveMQ窃听

时间:2019-06-03 14:49:02

标签: java python apache-camel jms activemq

我正在尝试使用Apache Camel进行事件搜索。 对于消息传递总线,我正在使用ActiveMQ。

用例

我想审核使用MongoDB作为持久性存储推送到ActiveMQ的每条消息。我曾尝试在ActiveMQ中使用镜像队列。这会将消息推送到与队列同名的主题。 但是我必须实现基于工作程序的(负载平衡)方法。这对于主题是不可能的(不允许重复消息)。 因此,我计划通过窃听模式将ActiveMQ与Camel一起使用。

所需的输出:

我可以从窃听目标中提取消息并将其插入到MongoDB中吗,或者有一种方法可以让骆驼直接将其插入到MongoDB中?

1 个答案:

答案 0 :(得分:0)

在经纪人方面解决此问题的一种可能方法是使用Composite Destinations。您可以指示代理将发送到队列的消息转发到另一个队列。进行此操作时需要格外小心,因为默认情况下,仅当队列存在时才会发生(目的地的静态配置可以绕过此操作)。有一个选项可以始终转发,也可以选择应用选择器以减少发送的内容。要记住的是,除非您有定期清除审核队列的内容,否则最终将耗尽空间。

您可以按以下方式配置转发:

<compositeQueue name="myQueue" forwardOnly="false">   
  <forwardTo>
    <queue physicalName="myAuditQueue" />
  </forwardTo>
</compositeQueue>