使用 Spring AMQP Request/Reply 保留 MDC
Retaining MDC with Spring AMQP Request/Reply
我有两个服务,A 和 B,通过 Spring Remoting with AMQP 进行通信。 A 公开一个 REST API 并在每个请求上使用 UUID.randomUUID()
(从 Filter
中)填充 MDC(映射诊断上下文)(并在处理完成时清除它)。现在我想在 request/reply 循环中将这个 UUID 传递给 B 以便...
- ...当 B 中的消费者开始处理请求时,其 MDC 将填充 UUID。
- ...当B中的消费者处理完请求后,其MDC被清除。
我已经扩展了 SimpleMessageConverter
以便设置一个包含 UUID 的 AMQP header,但我似乎并没有真正弄清楚 how/where 来填充和 how/where 清除 B 中的 MDC。有人能解释一下吗?
将另一个自定义消息转换器注入 AmqpInvokerServiceExporter
。
在 fromMessage()
中设置 MDC(来自 header),在回复映射时清除它(在 toMessage
中)。
我有两个服务,A 和 B,通过 Spring Remoting with AMQP 进行通信。 A 公开一个 REST API 并在每个请求上使用 UUID.randomUUID()
(从 Filter
中)填充 MDC(映射诊断上下文)(并在处理完成时清除它)。现在我想在 request/reply 循环中将这个 UUID 传递给 B 以便...
- ...当 B 中的消费者开始处理请求时,其 MDC 将填充 UUID。
- ...当B中的消费者处理完请求后,其MDC被清除。
我已经扩展了 SimpleMessageConverter
以便设置一个包含 UUID 的 AMQP header,但我似乎并没有真正弄清楚 how/where 来填充和 how/where 清除 B 中的 MDC。有人能解释一下吗?
将另一个自定义消息转换器注入 AmqpInvokerServiceExporter
。
在 fromMessage()
中设置 MDC(来自 header),在回复映射时清除它(在 toMessage
中)。