- Zipkin 是一个开放源代码分布式的跟踪系统,由Twitter公司开源,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。
- 每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图,显示了多少跟踪请求通过每个服务,该系统让开发者可通过一个 Web 前端轻松的收集和分析数据,例如用户每次请求服务的处理时间等,可方便的监测系统中存在的瓶颈。
- Zipkin提供了可插拔数据存储方式:In-Memory、MySql、Cassandra以及Elasticsearch。接下来的测试为方便直接采用In-Memory方式进行存储,生产推荐Elasticsearch。
服务端的安装
docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin
http://localhost:9411/zipkin/
客户端使用
- 需要在每一个项目中(包括提供者,消费者,网关等),依赖如下:
<!-- zipkin的依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
<!-- sleuth的依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
-
在上面所有的项目中添加如下的配置:
-
在开发环境中可以指定抽样的比例为1,在生产环境中可以使用默认的即可
spring:
zipkin:
base-url: http://192.168.174.128:9411 # 指定zipkin的服务端的地址
sleuth:
web:
client:
enabled: true
sampler:
probability: 1.0 # 将采样比例设置为 1.0,也就是全部都需要。默认是 0.1
原文
https://chenjiabing666.github.io/2018/12/25/spring-sleuth-服务追踪/