java - Camel 聚合器如何工作

标签 java apache-camel

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

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

如果我有 4 个项目按以下顺序通过路由 - itemA1、itemB1、itemA2 和 itemB2,会怎样?

我想将 itemA1itemA2 合并,将 itemB1itemB2 合并。当前两个项目不合并时,聚合器如何工作?

最佳答案

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

itemA1 -> [item_type][item_number]

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

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

出于任何原因,永远不会发布一个类型的第二个项目,第一个项目将保留在聚合器中。但也可以设置超时等。

关于java - Camel 聚合器如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41618840/

相关文章:

java - Javolution Struct 优化/配置调整技巧?

java - CamelContext camelContext = SpringCamelContext.springCamelContext(appContext, false);在 Camel 版本 2.17.3 中弃用

unit-testing - 如何在 Camel 单元测试中模拟多个组件?

java - PostgreSQL 上的 Hibernate 架构生成 : wrong column type UUID instead of INET

java - StringBuilder 和 equals 比较原始字符串和反转字符串

java - Tomcat 不解析 .war 符号链接(symbolic link)

java - 如何在使用 servlet 传输的 cxf 端点配置中覆盖/忽略 WARFileName

java - 如何在apache Camel sql批量插入中设置autocommit false?

java - Camel 消费者: Dynamic Delay Times

java - 上下文服务竞争条件