Apache camel apache camel aggregator2-如何聚合两种消息类型中的每一种?

Apache camel apache camel aggregator2-如何聚合两种消息类型中的每一种?,apache-camel,aggregator,Apache Camel,Aggregator,我有两种类型的消息(A和B)到达聚合器。如何将第一个到达的A与第一个到达的B进行聚合?如果您有EIP手册或骆驼行动手册,请阅读聚合器EIP的理论。那会告诉你很多。聚合EIP是最复杂的EIP之一,因此值得花点时间研究该模式 简而言之,您需要关联a和B,以便聚合EIP将匹配这两条消息,并聚合它们 因此,您需要实现这种关联如何作为一个表达式来工作,例如,在Camel中,您可以使用一个方法调用表达式来实现它,它允许您在方法调用中使用Java代码来确定这一点 该方法的结果应该是一个指示相关组标识符的字符串

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

如果您有EIP手册或骆驼行动手册,请阅读聚合器EIP的理论。那会告诉你很多。聚合EIP是最复杂的EIP之一,因此值得花点时间研究该模式

简而言之,您需要关联a和B,以便聚合EIP将匹配这两条消息,并聚合它们

因此,您需要实现这种关联如何作为一个表达式来工作,例如,在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

如果你有EIP手册或骆驼行动手册,那么请阅读关于聚合器EIP的理论。那会告诉你很多。聚合EIP是最复杂的EIP之一,因此值得花点时间研究该模式

简而言之,您需要关联a和B,以便聚合EIP将匹配这两条消息,并聚合它们

因此,您需要实现这种关联如何作为一个表达式来工作,例如,在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