天天看点

spring cloud整合Sleuth的链路追踪zipkin

什么是Sleuth

Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,只需要在pom文件中引入相应的依赖即可。

为什么使用zipkin

在微服务架构中,大的系统会有上百个服务,而且其中服务之间调用关系复杂,在蜘蛛网似的微服务调用链路中寻找一条业务调用线极为复杂,zipkin就是应对这个问题

本文目录

1、构建 server-zipkin

2、构建注册中心

3、构建两个服务(模拟调用链)

4、最终调用验证

在spring Cloud为F版本的时候,已经不需要自己构建Zipkin Server了,只需要下载jar即可,可以使用我下面用到的版本

官方地址: ​​https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/​​

百度网盘链接:​​https://pan.baidu.com/s/1QoZQWftn3vpALcmRotpg1A​​

提取码:3972

下载完执行运行

默认端口 9411

访问

zipkin就绪后 地址 127.0.0.1:9411

spring cloud整合Sleuth的链路追踪zipkin

注册中心就绪后 地址 127.0.0.1:8761

构建服务provide-server1 和 provide-server2

为了方便演示,我们这里使用rest方式进行服务调用

在idea中创建新的工程 工程名 例: provide-server1

在resources资源文件下创建 application.yml,并在该application.yml文件中加入如下配置

在启动类加入如下代码

创建web控制器

在idea中创建新的工程 工程名 例: provide-server2

依赖于 provide-server1 一致

目前为止捋一下服务和环境

eureka-server 127.0.0.1:8761

zipkin-server 127.0.0.1:9411

provide-server1 127.0.0.1:8011

provide-server2 127.0.0.1:8021

全部启动

调用下 provide-server1

spring cloud整合Sleuth的链路追踪zipkin

provide-server1去调用了 provide-server2,所以返回的是 provide-server2接口的数据,到这里服务调用正常,那么我们再去zipkin看看有没有调用记录呢

查看zipkin调用记录 访问127.0.0.1:9411

如果没有记录的话点击 查找 按钮

spring cloud整合Sleuth的链路追踪zipkin

点击这条记录

spring cloud整合Sleuth的链路追踪zipkin

可以看到这次调用的详细信息

我们也可以通过结构图来查看更直观的调用链

spring cloud整合Sleuth的链路追踪zipkin

可以看到在图中清晰的调用线路,以及请求的流向,真是功能强大,更多功能自己来尝试吧

最后说明一下,这个功能比较消耗性能,生产环境可以关闭,特别是配置 样本收集的比率为100%

继续阅读