天天看點

Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

1. 概述

1.1 為什麼會出現這個技術?需要解決哪些問題?

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

Spring Cloud(十九):Sleuth分布式請求鍊路追蹤
Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

1.2 是什麼

  • https://github.com/spring-cloud/spring-cloud-sleuth
  • Spring Cloud Sleuth提供了一套完整的服務跟蹤的解決方案
  • 在分布式系統中提供追蹤解決方案并且相容支援了zipkin
Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

2. 搭建鍊路監控

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

下載下傳 zipkin-server-2.12.9.exec.jar

位址:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/

運作jar

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

運作控制台

http://localhost:9411/zipkin/

完整的調用鍊路

Spring Cloud(十九):Sleuth分布式請求鍊路追蹤
Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

名詞解釋:

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

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

2.1 服務提供者

cloud-provider-payment8001

pom:

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

yml

Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

controller

Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

2.2 服務消費者

pom yml 同上

cloud-consumer-order80

Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

依次啟動eureka7001/8001/80

80調用8001幾次測試下

打開浏覽器通路:http:localhost:9411

Spring Cloud(十九):Sleuth分布式請求鍊路追蹤

繼續閱讀