java - Camel 聚合器完成大小与相关表达式?

标签 java apache-camel aggregate routes

给定以下 Camel 聚合器(通过 Spring XML):

<aggregate strategyRef="myggregationStrategy" completionSize="3">
    <correlationExpression> 
        <simple>${header.id} == 1</simple> 
    </correlationExpression>
    <to uri="bean:postProcessor?method=process" />
</aggregate> 

completionSizecorrelationExpression 与何时调用 myAggregationStrategy#aggregate 方法之间有什么关系?当 3 条消息到达聚合器时,aggregate 是否会被调用? correlationExpression 是否充当某种过滤器?它们如何相互协作?

最佳答案

对于与您的相关表达式匹配的每个交换,都会调用

AggregationStrategy::aggregate()。相关表达式用于关联传入的消息。 IE。确定传入消息属于哪个更大的实体。如果较大实体的各个部分散布在一起,那么您可能会并行组装多个实体,并且相关表达式将使它们分开。

完成大小是告诉聚合器您正在组装的更大实体已完成并且它应该沿路线继续聚合交换的一种方式。请参阅 this page 上的“关于完成”一章.

AggregationStrategy::aggregate() 会针对与关联表达式匹配的每条传入消息调用。

也看看这个example .

关于java - Camel 聚合器完成大小与相关表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463287/

相关文章:

java - 有没有办法从 Maven 配置中执行批处理文件?

java - 如何访问 <display :table tag similar to varStatus in <c:forEach 中的索引变量

java - 在 Apache Camel LDAP 组件中对结果进行分页

c++ - C++14 中的聚合成员初始化

r - 在数据框中按组选择第一行和最后一行

java - 使用JAVA上传PDF文件

java - 如何让 Infinispan 与 Camel 一起工作

apache-camel - Camel : Splitting a collection and writing to files

r - 如何将数据框转换为行和列中包含组值的矩阵?

java - 在 xpath 表达式中使用撇号