【Spring Cloud】微服务链路跟踪Sleuth
Spring Cloud Sleuth 提供了一套完整的服务跟踪解决方案,它集成了Zipkin和Brave来实现链路追踪。
以下是一个简单的例子,展示如何在Spring Cloud微服务中集成Spring Cloud Sleuth实现链路追踪。
- 首先,在你的Spring Cloud项目中添加Sleuth依赖。
<!-- 添加Spring Cloud Sleuth依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
- 确保你的Spring Cloud应用配置了Zipkin服务器。
# application.yml 或 application.properties
spring.zipkin.base-url=http://localhost:9411 # Zipkin服务器的URL
spring.sleuth.sampler.probability=1.0 # 采样所有请求,可以根据需要调整采样率
- 在你的REST客户端或者其他需要追踪的代码中,使用Spring提供的
Tracer
对象来创建新的跟踪或者为已有的跟踪添加信息。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TraceController {
private final Tracer tracer;
@Autowired
public TraceController(Tracer tracer) {
this.tracer = tracer;
}
@GetMapping("/trace")
public String trace() {
// 创建新的跟踪信息或者为当前跟踪添加标签
tracer.currentSpan().tag("my-tag", "my-value");
return "Trace information added";
}
}
- 启动你的应用,并确保Zipkin服务器正在运行。当你的应用产生追踪信息时,这些信息会发送到Zipkin服务器进行展示和查询。
确保你已经部署了Zipkin服务器。如果你想要快速测试,可以使用Spring Cloud提供的单机版Zipkin服务器。
# 启动单机版Zipkin服务器
java -jar spring-cloud-starter-zipkin.jar
现在,你的微服务应用已经集成了Spring Cloud Sleuth进行链路追踪,并且将追踪信息发送到了Zipkin服务器。通过访问Zipkin UI,你可以查看服务间调用的追踪信息。
评论已关闭