一. 基础解释
Spring Cloud Sleuth 请求链路跟踪,在微服务下,服务之间相互调用,可能为了实现某一个功能,执行某一个请求,会级联调用多个服务,为了更好的监控管理服务,提供 Sleuth 链路跟踪在 Spring Cloud Sleuth 链路跟踪中分为两块,Sleuth 负责链路跟踪, zipkin 负责展现跟踪数据Spring Cloud 在 F 版起不用构建 Zipkin Server端,直接调用 jar 包即可
zipkin 的使用
下载启动 zipkin
进入 zipkin 下载地址 https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/ 选择版本进行下载,此处以 zipkin-server-2.12.9-exec.jar 为例 点击将jar包下载到非中文路径下
启动 : 在下载路径下 cmd 进入命令行,输入"java -jar zipkin-server-2.12.9-exec.jar" 运行该jar(后面是下载的zipkin jar包名称,可以使用 Tab 键自动补全功能),出现下方像箭头一样的图案表示启动成功 访问: zipkin 默认端口号为9411, 浏览器访问 “http://运行zipkin ip地址:9411” 进行访问
二. 配置服务在调用时被 Spring Cloud Sleuth 监控
在需要监控的服务中添加 spring-cloud-starter-zipkin 依赖(该依赖中包含了sleuth zipkin)
<!--包含了sleuth
+zipkin
-->
<dependency>
<groupId>org
.springframework
.cloud
</groupId
>
<artifactId>spring
-cloud
-starter
-zipkin
</artifactId
>
</dependency
>
需要监控的服务 yml 中添加 zipkin 相关配置,将当前服务调用时的数据发送给指定的 zipkin
server:
port: 80
spring:
application:
name: cloud
-order
-service
zipkin:
base-url: http
://localhost
:9411
sleuth:
sampler:
probability: 1
eureka:
client:
register-with-eureka: true
fetchRegistry: true
service-url:
defaultZone: http
://eureka7001.com
:7001/eureka
,http
://eureka7002.com
:7002/eureka
此时,当调用 80 服务中的接口时,被 zipkin 监控到,就可以通过访问zipkin看到调用接口的完整的执行链路(需要监控的链路上的微服务都需执行以上两步)每个需要被监控的服务 pom 文件中都需要引入 spring-cloud-starter-zipkin 依赖,yml 配置文件中都需要进行 zipkin 相关配置 ,配置后,当调用一个服务接口,假设该接口还级联调用了其它接口,都可以在 zipkin 中看到