0

我有两种类型的消息(A 和 B)到达聚合器。如何聚合第一个到达的 A 和第一个到达的 B?

4

1 回答 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 回答