使用zipkin跟踪微服务调用链

在微服务架构中,当一个用户请求执行时,调用了那些微服务,并且这些微服务的服务水平如何?是在开发和运维中关注的一个重要问题。Zipkin作为分布式调用跟踪的一个开源实现,并广泛运用。本文演示如何在Spring Cloud构建的系统中加入该功能。

本文使用 Spring Cloud课题实验手册(一) 文中的案例作为基础,如果不熟悉 Spring Cloud,可以先练习并完成该实验。

安装 Zipkin 服务

在 Spring Boot 早期的版本中,Zipkin 可以作为一个 Spring Boot 项目被构建并启动运行,但在 Spring Boot 2.x 之后,就不再支持这种方式。因此我们可以通过 Docker 来安装。可参考 在Docker中使用 Zipkin 服务端

加入依赖库

在需要跟踪的项目中加入依赖库,我们选择在 Gateway 项目中添加:

1
2
3
4
5
6
7
8
9
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

修改配置文件

修改 application.yml 文件,添加与 zipkin 和 sleuth 相关的配置:

1
2
3
4
5
6
7
8
9
spring:
zipkin:
base-url: http://localhost:9411/
application:
name: gateway
sleuth:
traceId128: true
sampler:
probability: 1.0

base-url 指向 zipkin 服务运行的地址, probability 指名取样频率,默认频率为: 0.1

查看效果

运行 Gateway 服务,调用相关服务, 然后通过浏览器访问 zipkin 服务的地址来查看效果。

本文标题:使用zipkin跟踪微服务调用链

文章作者:梅老师

发布时间:2019年12月29日 - 07:12

最后更新:2020年09月16日 - 08:09

原始链接:https://www.mls-tech.info/microservice/spring-cloud/springcloud-sleuth-zipkin/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。