我的 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/