问题描述
我的服务开发遵循基于微服务的架构。我想通过系统中的各种微服务调用来跟踪我的每个请求。我的微服务通过 Google PubSub 消息传递框架进行通信。我无法找到任何开箱即用的方式将 MDC 上下文传递给我的后续服务调用。我正在使用 spring Sleuth 进行跟踪。有什么办法可以通过 PubSub 调用传递 MDC 上下文吗?
解决方法
如果“MDC”是指跟踪上下文,那么您可以例如将 Spring Cloud Stream 与可以开箱即用的 Google PubSub 一起使用。如果您需要手动执行此操作,则可以从 Tracer
bean 访问当前跨度,通过 tracer.currentSpan()
并从其 SpanContext
中检索您应该传递的跟踪 id 和跨度 id到 Google PubSub 消息。