跨越微服务边界:Spring Cloud Sleuth 如何助力实现无缝分布式追踪
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TracingController {
private final Tracer tracer;
public TracingController(Tracer tracer) {
this.tracer = tracer;
}
@GetMapping("/start-tracing")
public String startTracing() {
// 创建一个新的span
Span span = tracer.createSpan("startTracing");
try (Tracer.SpanInScope ws = tracer.withSpan(span.start())) {
// 在这个span的范围内执行一些逻辑
// ...
// 返回结果
return "Tracing has started";
} finally {
// 完成span
span.finish();
}
}
}
这个简单的Spring Boot应用程序示例展示了如何使用Spring Cloud Sleuth创建和管理一个span。在startTracing
方法中,我们创建了一个新的span,在span的范围内执行了一些模拟的逻辑,并且在完成工作后正确地关闭了span。这个例子有助于理解微服务追踪的基本概念和实践。
评论已关闭