天天看点

Spring Cloud Sleuth 请求链路跟踪一. 基础解释二. 配置服务在调用时被 Spring Cloud Sleuth 监控

目录

  • 一. 基础解释
    • zipkin 的使用
  • 二. 配置服务在调用时被 Spring Cloud Sleuth 监控

一. 基础解释

  1. Spring Cloud Sleuth 请求链路跟踪,在微服务下,服务之间相互调用,可能为了实现某一个功能,执行某一个请求,会级联调用多个服务,为了更好的监控管理服务,提供 Sleuth 链路跟踪
  2. 在 Spring Cloud Sleuth 链路跟踪中分为两块,Sleuth 负责链路跟踪, zipkin 负责展现跟踪数据
  3. Spring Cloud 在 F 版起不用构建 Zipkin Server端,直接调用 jar 包即可

zipkin 的使用

  1. 下载启动 zipkin
  • 进入 zipkin 下载地址 https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
  • 选择版本进行下载,此处以 zipkin-server-2.12.9-exec.jar 为例 点击将jar包下载到非中文路径下
  1. 启动 : 在下载路径下 cmd 进入命令行,输入"java -jar zipkin-server-2.12.9-exec.jar" 运行该jar(后面是下载的zipkin jar包名称,可以使用 Tab 键自动补全功能),出现下方像箭头一样的图案表示启动成功
    Spring Cloud Sleuth 请求链路跟踪一. 基础解释二. 配置服务在调用时被 Spring Cloud Sleuth 监控
  2. 访问: zipkin 默认端口号为9411, 浏览器访问 “http://运行zipkin ip地址:9411” 进行访问
    Spring Cloud Sleuth 请求链路跟踪一. 基础解释二. 配置服务在调用时被 Spring Cloud Sleuth 监控

二. 配置服务在调用时被 Spring Cloud Sleuth 监控

  1. 在需要监控的服务中添加 spring-cloud-starter-zipkin 依赖(该依赖中包含了sleuth zipkin)
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-zipkin</artifactId>
 </dependency>
           
  1. 需要监控的服务 yml 中添加 zipkin 相关配置,将当前服务调用时的数据发送给指定的 zipkin
server:
  port: 80 #当前服务端口号(在访问时默认使用80端口,访问时可以省略)

spring:
  application:
    name: cloud-order-service #当前服务名称
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource #当前数据源操作类型
    driver-class-name: com.mysql.cj.jdbc.Driver #mysql驱动包
    url: jdbc:mysql://localhost:3306/test01?serverTimezone=GMT%2B8 #连接的库
    username: root
    password:
#=============zipkin相关配置===============================
  zipkin:
    #zipkin地址,当前服务调用时将调用产生的数据发送给该地址指定的kipkin
    base-url: http://localhost:9411
  sleuth:
    sampler:
      probability: 1 #采样率,取值介于 0到1之间,1则表示全部收集,一般是0.5
#=============zipkin相关配置end===============================

mybatis:
  mapperLocations: classpath:mapper/*.xml #扫描mappper.xml  */
  type-aliases-package: com.order.dao #扫描对应mapper.xml 接口

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      #eureka 注册中心访问连接,集群环境多个注册地址
      defaultZone: http://127.0.0.1:7001/eureka,http://127.0.0.1:7002/eureka
  instance:
    instance-id: order80 #配置当前服务向eureka注册中心注册时显示的服务器主机名称
    prefer-ip-address: true #配置在开发人员直接访问eureka服务器时显示当前eureka上注册的服务的ip
    lease-renewal-interval-in-seconds: 1 #指定定时向eureka注册中心发送代表当前服务心跳包的时间默认30秒
    # Eureka 接收到当前服务最后一次发送代表正常心跳包的等待时间,超过则将当前服务在 Eureka 上踢除
    lease-expiration-duration-in-seconds: 2 
           
  1. 此时,当调用 80 服务中的接口时,被 zipkin 监控到,就可以通过访问zipkin看到调用接口的完整的执行链路
  2. 每个需要被监控的服务 pom 文件中都需要引入 spring-cloud-starter-zipkin 依赖,yml 配置文件中都需要进行 zipkin 相关配置 ,配置后,当调用一个服务接口,假设该接口还级联调用了其它接口,都可以在 zipkin 中看到
    Spring Cloud Sleuth 请求链路跟踪一. 基础解释二. 配置服务在调用时被 Spring Cloud Sleuth 监控
    Spring Cloud Sleuth 请求链路跟踪一. 基础解释二. 配置服务在调用时被 Spring Cloud Sleuth 监控