Spring AMQP 和 CorrelationId

Spring AMQP and CorrelationId

我看到 Spring AMQP 在您使用方法 sendAndReceive()() 时更改了 属性 correlationId 的值。

如果我想设置自己的correlationId(我需要在发送消息之前保存correlationId),有什么办法可以防止spring更改correlationId的值?

谢谢

以下内容仅在您使用 reply-container 时适用;如果不是,Spring 根本不使用 correlationId。

模板不能依赖 user-supplied correlationId,因为它必须是唯一的,并且不能保证 use-supplied 是唯一的。

默认情况下,模板使用标准 correlationId header,它会在内部保存任何用户提供的值,并在收到回复时恢复它。 user-supplied correlationId 未发送到远程系统。

您可以通过设置 correlationKey(例如 springCorrelationId)告诉模板使用不同的 header 进行关联(并保持 user-supplied 值不变) .但是,这样做时,远程系统必须在回复中回显 header(因此模板可以匹配对请求的回复)。