在Java项目中使用traceId跟踪请求全流程日志点击此处连接
<dependency>
<groupId>io.zipkin.brave</groupId>
<artifactId>brave</artifactId>
<version>5.9.5</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-core</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
public class TraceUtils {
private static Tracer staticTracer;
private static Tracing staticTracing;
private static SpanNamer staticSpanNamer;
@Autowired
private Tracing tracing;
@Autowired
private SpanNamer spanNamer;
public TraceUtils(){
}
public static ScopedSpan span(String name){
return staticTracer.startScopedSpan(name);
}
public static <T> T runInScope(String name, Supplier<T> supplier){
ScopedSpan span = span(name);
T var3 ;
try {
var3 = supplier.get();
} finally {
span.finish();
}
return var3;
}
@PostConstruct
public void init(){
staticTracing = this.tracing;
staticTracer = staticTracing.tracer();
staticSpanNamer = this.spanNamer;
}
public static String getReqId(){
return MDC.get("traceId");
}
public static Runnable traceTask(Runnable delegate){
return new TraceRunnable(staticTracing,staticSpanNamer,delegate);
}
public static <V> Callable<V> traceTask(Callable<V> delegate){
return new TraceCallable(staticTracing,staticSpanNamer,delegate);
}
}