Spring Cloud Sleuth 提供了一种简单的方式来追踪分布式系统中的请求链路。以下是如何在 Spring Cloud 应用中集成 Spring Cloud Sleuth 的步骤和示例代码:
- 在项目的
pom.xml
文件中添加依赖:
<dependencies>
<!-- Spring Cloud Sleuth -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<!-- 其他依赖 -->
</dependencies>
- 在
application.properties
或application.yml
文件中配置(可选):
# application.properties
spring.application.name=my-spring-cloud-application
或者
# application.yml
spring:
application:
name: my-spring-cloud-application
- 在您的应用代码中,使用 Sleuth 提供的工具来记录日志:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
private static final Logger log = LoggerFactory.getLogger(MyController.class);
@GetMapping("/trace")
public String trace() {
log.info("Handling trace request");
// 业务逻辑
return "Trace ID: " + Span.current().traceId() + " Log ID: " + Span.current().spanId();
}
}
- 将 Sleuth 与 Zipkin 服务器集成,以收集和查看追踪信息:
在 pom.xml
中添加 Zipkin 依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
在 application.properties
或 application.yml
中配置 Zipkin 服务器:
# application.properties
spring.zipkin.base-url=http://localhost:9411
spring.sleuth.sampler.probability=1.0 # 记录所有请求,可以根据需要调整采样率
或者
# application.yml
spring:
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
probability: 1.0 # 记录所有请求,可以根据需要调整采样率
- 启动 Zipkin 服务器,并访问 Zipkin UI (
http://localhost:9411
) 来查看追踪信息。
确保您已经启动了 Zipkin 服务器,它默认运行在 9411
端口。
以上步骤提供了一个基本的 Spring Cloud Sleuth 集成指南,用于追踪分布式系统中的请求链路。