天天看點

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 監控