Spring Cloud Sleuth 请求链路跟踪

    科技2022-09-04  128

    一. 基础解释

    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 #采样率值等介于0到1之间,1则表示全部采集 eureka: client: #表示是否将自己注册进EurekaServer默认设为true register-with-eureka: true #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设为true才能配合ribbon使用负载均衡 fetchRegistry: true service-url: #defaultZone: http://localhost:7001/eureka #单机版 defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版 此时,当调用 80 服务中的接口时,被 zipkin 监控到,就可以通过访问zipkin看到调用接口的完整的执行链路(需要监控的链路上的微服务都需执行以上两步)每个需要被监控的服务 pom 文件中都需要引入 spring-cloud-starter-zipkin 依赖,yml 配置文件中都需要进行 zipkin 相关配置 ,配置后,当调用一个服务接口,假设该接口还级联调用了其它接口,都可以在 zipkin 中看到
    Processed: 0.008, SQL: 9