0
我有,我想駱駝訪問以下豆路線:正確使用駱駝聚合「到」的URI
- 首先,
loggingBean
- 其次,
aggregator
是等待一定數量的消息一旦達到聚集的completionSize
它聚集 - (3),繼續前進到#4
- 三,
processorBean
- 而第四/最後,
finalizerBean
這裏是我的路線:
<route id="my-camel-route">
<from uri="direct:starter" />
<to uri="bean:loggingBean?method=shutdown" />
<aggregate strategyRef="myAggregationStrategy" completionSize="3">
<correlationExpression>
<simple>${header.id} == 1</simple>
</correlationExpression>
<to uri="bean:processorBean?method=process" />
</aggregate>
<to uri="bean:finalizerBean?method=shutdown" />
</route>
我的問題:我需要把finalizerBean
內的<aggregate>
元素,像這樣:
<aggregate strategyRef="myAggregationStrategy" completionSize="3">
<correlationExpression>
<simple>${header.id} == 1</simple>
</correlationExpression>
<to uri="bean:processorBean?method=process" />
<to uri="bean:finalizerBean?method=shutdown" />
</aggregate>
基本上,我想知道如果我現在擁有的東西的方式會提示Camel發送消息給聚合器,然後也發送它到finalizerBean
(實質上繞過聚合器)。在我的情況下,我希望它彙總,直到completionSize
是3,然後然後發送彙總交換到processorBean
,然後最後finalizerBean
。
還是我配置正確? finalizerBean
與<aggregate>
之間有什麼區別?
我們如何使用表達同樣的事情Java DSL? 'aggregate()。to()'做我期望的事情,即只發送一次聚合交換到指定的路由嗎? –
正確的,像aggregate(new MyStrategy())。completionSize(3).to(「bean:xyz」)'是等價的。 – vikingsteve
文檔:http://camel.apache.org/aggregator2.html – vikingsteve