Camel聚合器如何工作

时间:2017-01-12 16:56:45

标签: java apache-camel

我有一个带聚合器的简单路线。

---[processor]---[aggregator]---[processor]---...

如果我按以下顺序通过路线有4件物品怎么办?itemA1, itemB1, itemA2 and itemB2

我想将itemA1itemA2itemB1itemB2合并。当两个第一个项目没有合并时,聚合器如何工作?

1 个答案:

答案 0 :(得分:0)

在@Claus Ibsen的建议之后,我在他推荐的书中找到了答案。原始文件非常简陋。

itemA1 -> [item_type][item_number]

对于聚合器,您必须指定以下三种配置:

  • 相关标识符 - 用于标识哪些消息属于一起。在我的情况下,可能是item_type字段,因此所有A-items属于所有B-items
  • 完成条件 - 确定何时应发送结果消息的谓词或基于时间的条件。对于我的例子,这可能是条件completionSize(2)
  • 聚合策略 - 指定如何组合聚合结果消息。例如。加入两个项目,例如itemA1itemA2itemB1itemB2

由于任何原因,从未发布过第二个类型的项目,第一个项目将保留在聚合器中。但是也可以设置超时等等。