【问题标题】:Split message into several (at least two) in Apache Camel在 Apache Camel 中将消息拆分为多个(至少两个)
【发布时间】:2016-03-03 14:57:58
【问题描述】:

我的 Apache Camel 的路线有时会生成一个对象列表。

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

配置 Camel 路由的最佳方法是:

  • 以 Camel 消息形式拆分为单个对象
  • 一些 Camel 消息头添加到每个拆分消息中
  • 并且每条消息都按照特定的路径发送?

目前我需要拆分两个消息的列表。

【问题讨论】:

    标签: java apache-camel


    【解决方案1】:

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

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

    向消息添加标题也很简单。如果所有消息都具有相同的标题,您可以添加如下内容:

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

    分手后

    使用骆驼dynamic routing 也很容易将每条消息路由到不同的路由。

    【讨论】:

    • 不带参数的 split() 呢?会发生吗?
    • 是的,如果您的消息正文包含一个列表/数组或带有迭代器的东西,那么骆驼会自动将该列表拆分为各个元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    相关资源
    最近更新 更多