使用Spring AMQP请求/回复保留MDC

时间:2015-06-23 16:17:54

标签: spring logging correlation spring-amqp mdc

我有两个服务,A和B,通过Spring Remoting with AMQP进行通信。 A公开REST API并在每个请求上使用UUID.randomUUID()(来自Filter内)填充MDC(映射的诊断上下文)(并在处理完成时清除它)。现在我想在请求/回复周期中将此UUID传递给B,以便......

  1. ...当B中的消费者开始处理请求时,其MDC将填充UUID。
  2. ...当B中的消费者完成处理请求时,其MDC将被清除。
  3. 我已经扩展SimpleMessageConverter以便设置包含UUID的AMQP标头,但我似乎并没有真正弄清楚如何/在哪里填充以及如何/在哪里清除B中的MDC。有人请说清楚吗?

1 个答案:

答案 0 :(得分:0)

将另一个自定义消息转换器注入AmqpInvokerServiceExporter

fromMessage()中设置MDC(来自标题),在映射回复时清除它(在toMessage中)。