Spring Cloud Zipkin 是一个分布式追踪系统,它基于 Google 的 Dapper 论文实现的开源项目 Zipkin 进行扩展,与 Spring Cloud 紧密集成以提供服务间的调用链跟踪功能。以下是一个简化的搭建步骤:
1. 安装并启动 Zipkin Server
- 下载 Zipkin Server 二进制包或通过 Docker 部署:
- 如果使用 Docker,运行如下命令:
docker run -d -p 9411:9411 openzipkin/zipkin
- 或者直接从 GitHub Release 页面下载对应版本的 zipkin-server.jar,并使用 Java 运行:
java -jar zipkin-server-<version>.jar
- 如果使用 Docker,运行如下命令:
2. 添加依赖到 Spring Cloud 微服务应用
在你的 Spring Boot 应用中添加 Spring Cloud Sleuth 和 Zipkin 依赖:
Maven
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
</dependencies>
Gradle
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
implementation 'org.springframework.cloud:spring-cloud-starter-zipkin'
}
3. 配置 Spring Cloud Sleuth 和 Zipkin
在 application.properties
或 application.yml
中配置 Zipkin 服务器地址:
# application.properties
spring.zipkin.baseUrl=http://localhost:9411/
或者
# application.yml
spring:
zipkin:
baseUrl: http://localhost:9411/
4. 启动微服务
确保所有微服务都配置了 Sleuth 和 Zipkin,并正确启动。Sleuth 将自动收集并发送跟踪数据至 Zipkin Server。
5. 查看跟踪信息
访问 Zipkin UI:
http://localhost:9411/
在这里可以查看和分析各个服务之间的调用链路、耗时等详细信息。
请注意,实际生产环境中可能需要调整一些其他配置项,例如采样率、服务名自定义等。此外,在集群环境中部署 Zipkin 时,还需要考虑存储后端(如 Elasticsearch 或 MySQL)的选择和配置。