java - 使用 Apache Camel 进行 Apache ActiveMQ 窃听

标签 java python apache-camel jms activemq

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

用例

我想审核使用 MongoDB 作为持久存储推送到 ActiveMQ 的每条消息。我尝试过在 ActiveMQ 中使用镜像队列。这会将消息推送到与队列同名的主题。 但我必须实现基于工作人员(负载平衡)的方法。这对于主题来说是不可能的(不允许消息重复)。 所以我打算通过窃听模式将 ActiveMQ 与 Camel 结合使用。

期望的输出:

我可以从窃听目的地提取消息并将其插入 MongoDB 吗?或者有没有一种方法可以让 Camel 直接将其插入 MongoDB 中?

最佳答案

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

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

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

关于java - 使用 Apache Camel 进行 Apache ActiveMQ 窃听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56429773/

相关文章:

java - 从 Java 安全地将字符串参数发送到 JavaScript 函数

python - VS Code 运行 python 比 IDLE 慢 2-3 倍

java - 在 Java 中的 Apache Camel 中使用 TLS/SSL 显式使用 FTP 路由器到 HTTPS 进行安全连接

java - 向 xml 添加命名空间和前缀

java - 什么是初始化 block ?

java - 添加 h :commandButton with f:param to h:dataTable 时出现 IllegalArgumentException

java - 意外的 MVEL2 行为

python - Django 模型是否有包含所有当前值的数据字典?

python eval vs ast.literal_eval vs JSON解码

java - 如何正确使用apache Camel中的直接组件?