我正在try 通过使用Apache Camel的处理器聚合来自2个终端的数据,为此,我首先阅读了相关的Camel文档:
https://camel.apache.org/components/3.20.x/eips/aggregate-eip.html个
并定义一个简单的聚合策略来简单地连接两个字段(在合并成功后,我将把它转换成我的数据模型).然而,几乎所有的示例都使用相同的数据源,并在拆分后聚合数据,等等.但我需要从2个端点获取数据,然后聚合这些数据.为简单起见,我try 从这2个数据源聚合2个字符串字段.之后,我会将汇总的数据传递给一个卡夫卡主题.
几乎所有的例子中,只有一种方法读取数据,例如from(direct: endpoint)
.但是,我们是否需要2来从端点或处理器读取多个数据呢?
我也try 使用enrich
方法,如下所示,但我无法使用此方法聚合这2个数据:
from("timer:myTimer?period=300000") // trigger every 5 minutes
.multicast(GroupedExchangeAggregationStrategy()).parallelProcessing()
.enrich("direct:customerProcessor")
.enrich("direct:orderProcessor")
.to(kafka("customerOrderTopic"))
.end()
那么,我如何使用Aggregate来实现这一点(或者,如果您有一个使用Enrich的 idea )?
这里是另一个例子,但就我所见,它也首先读取数据,然后仅对该数据应用聚合策略.然后将其传递到第二阶段.但我希望从两个来源读取数据,然后将其传递给聚合策略.我是不是错过了一些要点?
https://www.masterspringboot.com/camel/how-to-aggregate-messages-in-camel/个