java - 在 Apache Camel 中将消息拆分为多个(至少两个)

标签 java apache-camel

我的 Apache Camel 的路由在某个时刻会生成一个对象列表。

我有另一条路线,它期望一个对象作为消息以及某些特定于对象的 header 并将其记录到数据库中。

配置 Camel 路由的最佳方法是什么,以便该列表是:

  • 作为 Camel 消息分割成单独的对象
  • 在每条拆分消息中添加一些 Camel 消息 header
  • 每条消息都按照特定的路线发送?

目前我需要将列表拆分为两条消息。

最佳答案

所以你可以使用Camel的splitter EIP将消息拆分为所需数量的消息。如果将列表传递到拆分器中,它将自动按简单元素拆分列表。如果默认的拆分工具不够,您可以编写一个自定义拆分 bean,以您想要的任何方式拆分消息。

from(START)
 .split(). method(SplitBean.class, "splitMessage")
 .to(FINISH);

向消息添加 header 也非常简单。如果所有消息都有相同的 header ,您可以添加如下内容:

.setHeader("cool", simple("true", Boolean.class))

分手后。

使用camel dynamic routing 将每条消息路由到不同的路由也很容易.

关于java - 在 Apache Camel 中将消息拆分为多个(至少两个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775570/

相关文章:

java - JSR 352 : Pass Multiple variables using Step Context/Job Context?

java - 如何在 Java DSL 中从 Camel 调用 REST 调用(POST with JSON body)

java - MQTT/Camel/自定义 header 参数

file - Camel File 组件 - Idempotrepository 和 InProgressRepository 之间有什么区别

java - .jar java 库中的记录器

java - 反转链表的右半部分

java - 哈希码与对象的引用或地址之间的区别?

java - 将 MyObject 的页面映射到 MyObjectDTO 的页面

java - 在 Camel 中捕获异常

java - 使用 Cloud Tools for Eclipse 部署包含 p12 文件的 App Engine 应用程序