分布式链路追踪系统 Sleuth Zipkin
测试用项目环境
框架 | 版本 |
---|---|
Idea | 2019.2 |
JDK | 1.8 |
SpringBoot | 2.1.6.RELEASE |
SpringCloud | Greenwich.SR2 |
链路追踪
在微服务系统中,一个服务会进行其他服务的调用,调用链长了之后比较难以维护,因此产生了链路追踪,自动分析一次数据请求的调用关系
Sleuth Zipkin
Sleuth是SpringCloud自带链路追踪系统,但一般情况都直接与Zipkin结合起来用。Zipkin暂且理解为将线路追踪的数据进行可视化。
- Sleuth文档:SpringCloud-Sleuth
- Zipkin:zipkin.io
QuickStart
maven依赖
链路追踪系统需要在每个调用和被调用的服务上加入依赖
使用maven依赖管理,使用最新的SpringCloud Greenwich.SR2版本
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--sleuth+zipkin 里面包含了starter-sleuth和sleuth-zipkin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
配置sleuth后,所有的日志都会加上"sleuth风",类似
2019-11-05 19:10:22.483 INFO [test-service,d6bf2652c1b05e2b,d6bf2652c1b05e2b,false] 5523 --- [nio-8091-exec-1] c.f.a.a.JWTAuthenticationFilter : header Authorization: null
启动类注解
并不需要启动类注解
Zipkin服务搭建
Zipkin服务其实是一个额外的springboot项目,可以在官网了解使用步骤
我此处使用了docker构建
docker run -d -p 9411:9411 openzipkin/zipkin
还是docker好用,半年之内誓死不看podman
启动之后访问浏览器9411端口便可以看见zipkin页面
相关配置
zipkin启动之后需要在服务中配置zipkin的url
spring:
zipkin:
# 后面加不加zipkin都可以,一样的效果
base-url: http://localhost:9411/
然后就可以启动了
然后界面没啥好说的了,中文界面研究研究就会发现它的作用
就是这么简单
个人感觉可以先搭建起来,但前期作用应该不大,在大项目中维护的时候才会发挥优势