如何通过 Google PubSub 消息传递 Sleuth MDC 上下文

问题描述

我的服务开发遵循基于微服务的架构。我想通过系统中的各种微服务调用来跟踪我的每个请求。我的微服务通过 Google PubSub 消息传递框架进行通信。我无法找到任何开箱即用的方式将 MDC 上下文传递给我的后续服务调用。我正在使用 spring Sleuth 进行跟踪。有什么办法可以通过 PubSub 调用传递 MDC 上下文吗?

解决方法

如果“MDC”是指跟踪上下文,那么您可以例如将 Spring Cloud Stream 与可以开箱即用的 Google PubSub 一起使用。如果您需要手动执行此操作,则可以从 Tracer bean 访问当前跨度,通过 tracer.currentSpan() 并从其 SpanContext 中检索您应该传递的跟踪 id 和跨度 id到 Google PubSub 消息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...