为什么在聚合路由器中需要消息 Id 表达式

why is messageIdExpression needed in Aggregator router

mule 文档here 讨论了如何在聚合路由器中设置 messageIdExpression,我的问题是为什么我需要设置 messageId,尤其是当它无法自定义时在拆分过程中。

我感到困惑的文档部分是:

<expression-message-info-mapping
            messageIdExpression="#[java.util.UUID.randomUUID().toString()]"
            correlationIdExpression="#[xpath3('//order/@id')]" />

相同的文档显示 messageId 在聚合过程中未使用,或者我在这里坚持错误的一端?

expression-message-info-mapping 元素配置 org.mule.routing.ExpressionMessageInfoMapping class,它负责生成消息 ID 和消息关联 ID。

messageIdExpression 没有默认值,所以您需要配置两者才能使用它,即使在聚合的情况下,只有相关 ID 用于分组消息。