我有两种类型的消息(A 和 B)到达聚合器。如何聚合第一个到达的 A 和第一个到达的 B?
问问题
755 次
1 回答
3
如果您有 EIP 书籍或 Camel in Action 书籍,请阅读有关聚合器 EIP 的理论。那会告诉你很多。聚合 EIP 是最复杂的 EIP 之一,因此值得花点时间研究该模式。
简而言之,您需要关联 A 和 B,以便聚合 EIP 将匹配 2 条消息,并将它们聚合。
因此,您需要实现这种相关性如何作为表达式工作,在 Camel 中,您可以使用方法调用表达式来实现这一点,它允许您在方法调用中使用 Java 代码来确定这一点。
该方法的结果应该是一个指示相关组标识符的字符串。那么第一个 A 和第一个 B 消息应该具有相同的相关组标识符。例如,您将匹配消息分组。
我建议多研究 EIP,然后思考如何编写相关逻辑。然后您可以在 Java 代码中实现它,然后将方法调用表达式与 Camel 聚合器一起使用。
此外,第 2 A、第 3 A、第 2 B 和第 3 B 消息应该发生什么?它们应该如何关联?
应该像
1A + 1B
2A + 2B
3A + 3B
然后消息可以按任何顺序到达聚合 EIP 模式,例如
1B
2B
1A
3B
2A
3A
聚合器的结果将如上所示 1A+1B ... ?
于 2012-04-25T04:54:46.340 回答