SpringCloud分佈式鏈路追蹤組件Sleuth配置詳解

一.概述

在微服務框架中,一個由客戶端發起的請求在後端系統中會經過多個不同的的服務節點調用來協同產生最後的請求結果,每一個前段請求都會形成一條復雜的分佈式服務調用鏈路,鏈路中的任何一環出現高延時或錯誤都會引起整個請求最後的失敗。

spring-cloud-sleuth 是什麼?

github地址:https://github.com/spring-cloud/spring-cloud-sleuth

Spring Cloud Sleuth提供瞭一套完整的服務跟蹤的解決方案,在分佈式系統中提供追蹤解決方案並且兼容支持瞭zipkin

二.zipkin搭建

Zipkin是 Twitter 的一個開源項目,基於 Google Dapper實現。可以使用它來收集各個服務器上請求鏈路的跟蹤數據,並通過它提供的 REST API 接口來輔助我們查詢跟蹤數據以實現對分佈式系統的監控程序,從而及時地發現系統中出現的延遲升高問題並找出系統性能瓶頸的根源。除瞭面向開發的API接口之外,它也提供瞭方便的 UI 組件幫助我們直觀的搜索跟蹤信息和分析請求鏈路明細,比如:可以查詢某段時間內各用戶請求的處理時間等。

SpringCloud從F版起已不需要自己構建Zipkin Server瞭,隻需調用jar包即可

zipkin-server-2.12.9-exec.jar

運行:

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

訪問地址:http://localhost:9411/zipkin/

術語:

完整的調用鏈路

表示一請求鏈路,一條鏈路通過Trace Id唯一標識,Span標識發起的請求信息,各span通過parent id 關聯起來

—條鏈路通過Trace ld唯一標識,Span標識發起的請求信息,各span通過parent id關聯起來。

名詞解釋:

  • Trace:類似於樹結構的Span集合,表示一條調用鏈路,存在唯一標識
  • span:表示調用鏈路來源,通俗的理解span就是一次請求信息

三.Sleuth鏈路監控實現

1. payment8001生產者修改

添加依賴:

<!-- 包含瞭 sleuth 和 zipkin -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

application.yml

spring:
  application:
    name: cloud-payment-service
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      # 采樣率在0 到 1 之間 1則表示全部采樣
      probability: 1s

新增controller方法:

@GetMapping("/payment/zipkin")
public String paymentZipkin()
{
    return "hi ,i'am paymentzipkin server fall back,welcome to atguigu,O(∩_∩)O哈哈~";
} 

2. Consumer80消費者修改

添加依賴:

<!--包含瞭sleuth+zipkin-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

application.yml

spring:
  application:
    name: cloud-order-server
  zipkin:
    base-url: http://localhost:9411
  sleuth:
    sampler:
      probability: 1 # 表示全部采樣

Controller新增方法

// ====================> zipkin+sleuth
@GetMapping("/consumer/payment/zipkin")
public String paymentZipkin()
{
    String result = restTemplate.getForObject("http://localhost:8001"+"/payment/zipkin/", String.class);
    return result;
}

3. 測試

啟動註冊中心7001

啟動生產者8001

啟動消費者80

多訪問幾次 http://localhost/consumer/payment/zipkin

查看 zipkin控制臺:http://localhost:9411

查看依賴關系:

到此這篇關於SpringCloud分佈式鏈路追蹤組件Sleuth配置詳解的文章就介紹到這瞭,更多相關SpringCloud組件Sleuth內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: