Spring Cloud Alibaba(14)---SpringCloudAlibaba整合Sleuth


SpringCloudAlibaba整合Sleuth

上一篇有寫過Sleuth概述,Spring Cloud Alibaba(13)---Sleuth概述

這篇我們開始通過示例來演示鏈路追蹤。

一、環境准備

既然是演示鏈路追蹤,那么就需要有多個微服務之間進行調用,這里的項目也是在之間已經搭建好的基礎上加上Sleuth組件,具體鏈路是這個的:

從圖中可以看出,這里一個完整的鏈路是 一個請求通過網關服務,然后轉發到 訂單微服務,然后訂單微服務中會去調商品服務

所以這里涉及三個微服務

mall-gateway: 網關服務。端口號:8001。
mall-goods: 商品服務。 端口號:6001。
mall-order: 訂單服務。端口號:7001。

這三個服務都已經注冊到nacos中,如圖


二、SpringCloudAlibaba整合Sleuth

注意 這里不把所有代碼都復制在這里,完整項目代碼,會放到github上,在文章下方會提供地址。

1、pom.xml

在需要進行鏈路追蹤的項目中(服務網關商品服務訂單服務)添加 spring-cloud-starter-sleuth 依賴。

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

2、測試

訪問地址如下:

#通過網關訪問訂單服務
http://localhost:8001/mall-order/api/v1/goods_order/getGoodsByFeign?goodsId=1

接下來我們來看各個微服務打印的日志

網關服務(mall-gatway)

2021-05-19 19:17:46.677  INFO [mall-gateway,4ef9402f9a9500a1,4ef9402f9a9500a1,true] 92553 --- [ctor-http-nio-3] com.jincou.getway.CustomGatewayFilter 

訂單服務(mall-order)

2021-05-19 19:17:47.284  INFO [mall-order,4ef9402f9a9500a1,94a660c5c94cffb4,true] 92561 --- [nio-7001-exec-1] c.j.order.controller.OrderController 

商品服務(mall-goods)

2021-05-19 19:17:49.077  INFO [mall-goods,4ef9402f9a9500a1,4c48de8ab2b6377a,true] 92566 --- [nio-6001-exec-1] c.j.goods.controller.GoodsController 

解釋下含義 [mall-gateway,4ef9402f9a9500a1,4ef9402f9a9500a1,true]

第⼀個值,spring.application.name的值。

第⼆個值,4ef9402f9a9500a1 ,sleuth⽣成的⼀個ID,叫Trace ID,⽤來標識⼀條請求鏈路,⼀條請求鏈路中包含⼀個Trace ID,多個Span ID。

第三個值,4ef9402f9a9500a1、spanId 基本的⼯作單元,獲取元數據,如發送⼀個http。

第四個值:true,是否要將該信息輸出到zipkin服務中來收集和展示。

我們可以看出這三個微服務的TraceID是一樣的,都為4ef9402f9a9500a1。代表是一個請求鏈路,但是4c48de8ab2b6377a是不一樣的,每個請求都是自己的SpanID

總結 查看日志文件並不是一個很好的方法,當微服務越來越多日志文件也會越來越多,查詢工作會變得越來越麻煩,下一篇我們通過 Zipkin 進行鏈路跟蹤。Zipkin 可以將日志聚合,並進行可視化展示和全文檢索。


github地址 nacos-feign-sentinel-gatway-sleuth


少說多做,句句都會得到別人的重視;多說少做,句句都會受到別人的忽視。(14)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM