【发布时间】:2021-01-12 08:21:23
【问题描述】:
我有一个要求,即不同异步请求的完整流与跨不同服务的一个 trackingId 相关,这些服务在消息的帮助下进行异步通信,并且我需要为与一个流或 trackingId 相关的所有请求提供一个 traceId。
我在从/进入 Tracer 获取/设置 TraceContext 时遇到问题,我在下面编写了代码,但它为每个请求创建了一个新的 traceId。
TraceContext traceContext = (TraceContext) contextMap.get(trackingId);
if (traceContext == null)
{
tracing.tracer().startScopedSpan(trackingId);
traceContext = tracing.currentTraceContext().get();
} else
{
tracing.tracer().startScopedSpanWithParent(trackingId, traceContext);
}
contextMap.put(trackingId, traceContext);
【问题讨论】:
标签: java spring-boot spring-cloud-sleuth zipkin