1. 程式人生 > >第十八天:浪跡天涯網上商城(1.0版本)--引入spring cloud sleuth分散式鏈路追蹤

第十八天:浪跡天涯網上商城(1.0版本)--引入spring cloud sleuth分散式鏈路追蹤

1、需求

我們都知道隨著專案的發展,各個底層的服務呼叫關係複雜,有時候因為某個服務的效能問題導致整個呼叫鏈出現故障,那麼排查問題是很困難的。現在我們引入Spring Cloud Sleuth分散式鏈路追蹤來解決這個問題。

2、Spring Cloud Sleuth 簡介

微服務可以將整個的系統拆分為無數個子系統,於是這樣一來就有可能出現幾種可怕的場景:
· 程式碼的除錯:
|- 你的系統有可能變慢了,於是這個時候就需要去追蹤每一個微服務的執行的速度;
|- 如果現在你的微服務採用了串聯的方式進行了互相呼叫,那麼如何確認某一個微服務出現了問題呢?
Spring Cloud Sleuth 技術就可以實現微服務的呼叫跟蹤,也就是說它可以自動的形成一個呼叫連線線,通過這個連線線使得開發者可以輕鬆的找到所有微服務間關係,同時也可以獲取微服務所耗費的時間, 這樣就可以進行微服務呼叫狀態的監控以及相應的資料分析。
在這裡插入圖片描述


其中上面涉及到的服務均可在github上面找到:浪跡天涯網上商城
在這裡,我們需要搞清楚一個概念,Sleuth 是做服務鏈路的追蹤,也就是說Sleuth是獲取服務鏈路追蹤的資料的,但是這些資料即使是給你,你也是很難去分析的,很難找出他們的呼叫關係的。這個時候Zipkin就出現了,它就是分析Sleuth獲取的鏈路的追蹤的資料的。一般我們在專案中,是結合Sleuth和Zipkin一起使用的,Sleuth將資料傳送給Zipkin, Zipkin分析資料,同時Zipkin提供了友好的管理頁面,我們可以通過Zipkin的管理頁面很好的觀察服務之間的呼叫關係。

3、在服務中新增Spring Cloud sleuth和Zipkin

首先我們需要在上面提到的所有服務,例如:
浪跡天涯商城賬號中心服務:langjitianya-account
浪跡天涯商城商品服務:langjitianya-itemservice
浪跡天涯商城運營後臺:langjitianya-backend
浪跡天涯商城閘道器服務:langjitianya-gateway
浪跡天涯商城配置中心:langjitianya-configuration
加入如下的pom依賴:
在這裡插入圖片描述
首先,我們分別按順序啟動, langjitianya-server-register-central,langjitianya-configuration , langjitianya-itemservice, langjitianya-account, langjitianya-backend 以及 langjitianya-gateway。
第一步:然後我們訪問服務管理頁面,可以得到:
在這裡插入圖片描述


第二步:請求http://localhost:30000/ 運營後臺
你在頁面上可以看到如下資料:
在這裡插入圖片描述
然後我們訪問http://localhost:5556的Zipkin服務,你可以看到下面的資料:
在這裡插入圖片描述
點開langjitianya-backend, 你可以看到:
在這裡插入圖片描述
點開langjitianya-account, 你可以看到:
在這裡插入圖片描述
點開langjitianya-itemservice, 你可以看到:
在這裡插入圖片描述
你會發現,langjitianya-backend, langjitianya-account 以及 langjitianya-itemservice, 他們的traceId都一樣,但是spanId不相同。凡是traceId都一樣的,那麼他們就是一個鏈路的請求。