Spring Cloud Sleuth 的分布式追踪
说明
- 项目运行的前提条件:服务注册中心已经启动。
- 本项目的服务注册与发现是基于 Spring Cloud Consul 实现。具体内容博主写在另一篇博客:
- 本博客是 Spring Cloud 微服务化(精简完整版)的一部分。
工作流程简介
- 本博客采用 Spring Cloud Sleuth + Zipkin 实现分布式追踪系统
- 工作流程:
- 每个应用分别往 Zipkin 发送追踪信息
- 完整的追踪报告在 Zipkin 中查看
安装 Zipkin
- 在 https://zipkin.io/pages/quickstart.html 下载程序包:
zipkin-server-2.12.9-exec.jar
- 执行以下命令启动 Zipkin 服务器。
- 命令 :
java -jar zipkin-server-2.12.9-exec.jar
项目改造
- 对以下项目进行改造,以便追踪它们之间的交换情况。
依赖
- pom.xml 添加:
-
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
-
配置
- 设置 sleuth 抽样的概率(取值范围:0~1,设置为 1 表示百分百)
- 添加日志配置
application.yml
添加以下内容:-
spring: sleuth: sampler: probability: 1.0 logging: pattern: level: '[%X{X-B3-TraceId}/%X{X-B3-SpanId}] %-5p [%t] %C{2} - %m%n'
-
- zipKin 服务器的默认 url 为:
http://localhost:9411/
。可以通过以下配置进行修改:-
spring: zipkin: base-url: http://localhost:9411/
-
测试
所有服务正常可用
-
服务状态:
-
访问接口
-
追踪监控
某些服务异常不可用
使 awesome-user-api 服务异常
- 服务状态
- 访问接口:
- 追踪监控:
使 awesome-user-server 服务异常
- 服务状态:
- 访问接口:
- 追踪监控