天天看點

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

文章目錄

  • 前言
  • 一、安裝 zipkin-server
      • 1.1 下載下傳
      • 1.2 流程圖
  • 二、使用步驟
      • 2.1 直接修改之前的子產品 `sgg-consumer80` 引入依賴
  • 總結 感謝B站尚矽谷的老師 ~~~

前言

在微服務架構中,一個由用戶端發起的請求在後端系統中會經過多個不同的服務節點調用協同産生最後的請求結果, 每一個前端請求都會形成一個複雜的分布式服務調用鍊路,鍊路中的任何一環出來高延時或者錯誤都會引起整個請求最後的失敗

SpringCloud Sleuth 提供了一套完整的服務跟蹤的解決方案

在分布式系統中提供追蹤解決方案并且相容支援了 zipkin

一、安裝 zipkin-server

1.1 下載下傳

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

下載下傳 2.12.9 版本的 zipkin

通過 cmd 運作

java -jar zipkin-server-2.12.9-exec.jar

控制台列印

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

可以看到 zipkin 預設使用的是 9411 端口。 通路 http://localhost:9411/zipkin

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

1.2 流程圖

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

Span Id

表示目前服務,

ParentId

為上一層 服務

Trace

類似于樹結構的 Span 集合, 表示一條調用鍊路 , 存在唯一辨別

span

表示調用鍊路來源, 通俗的了解就是 span 就是一次請求資訊

二、使用步驟

2.1 直接修改之前的子產品

sgg-consumer80

引入依賴

pom.xml

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
           

修改 yml 檔案

server:
  port: 80
spring:
  application:
    name: ssg-consumer-service
  zipkin:
    base-url: http://127.0.0.1:9411 # 指定 zipkin 的服務位址
  sleuth:
    sampler:
      probability: 1 # 采樣率, 介于 0  - 1 之間。 0 不采集, 1 全部采集
eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka,http://localhost:7002/eureka
  instance:
    instance-id: sgg-consumer80
    prefer-ip-address: true
           

修改

sgg-payment8001

sgg-payment8002

pom.xml

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
           

修改 yml 檔案

spring:
  application:
    name: sgg-payment-service
  zipkin:
    base-url: http://127.0.0.1:9411 # 配置 zipkin 的位址
  sleuth:
    sampler:
      probability: 1 # # 采樣率, 介于 0  - 1 之間。 0 不采集, 1 全部采集
           

接口依舊使用之前的老接口。 順序啟動 7001,7002,8001,8002,80

通路 接口

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

這個時候檢視我們的 Zipkin 的控制台

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

可以看到我們的請求鍊路已經添加到 控制台中了

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

點進去 ,我們點選該鍊路資料,可以看到一個 Trace 明細。如下圖所示:

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

再之後,點選兩個Span,可以看到每一個的Span明細

SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~
SpringCloud(九)Sleuth 分布式請求鍊路跟蹤前言一、安裝 zipkin-server二、使用步驟總結 感謝B站尚矽谷的老師 ~~~

總結 感謝B站尚矽谷的老師 ~~~

參考文章 : 芋道源碼

繼續閱讀