中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用SpringCloud跟蹤分布式鏈路

發布時間:2021-06-08 17:28:36 來源:億速云 閱讀:160 作者:Leah 欄目:編程語言

如何使用SpringCloud跟蹤分布式鏈路?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

程序測試錯誤追責

我舉個例子,我現在要做一個電商項目,項目里面有一個購買模塊,那我這邊可能要執行一個代碼,比如減庫存之類的東西,那我兩個服務不就是要相互調用嘛,我自身是一個服務,我現在要調用減庫存這個服務;

你調用它,你知道它一定能執行成功嗎?肯定是不一定;

比如說,我現在要執行一個減庫存的代碼,我調用這個方法會進行庫存的一個更改,這個庫存減少成功還好,萬一要是失敗就會出現一個問題就是,做前端的來調用你,但是你出錯了,這時你也不知道你這個減庫存到底有沒有執行成功,兩個人就會相互排斥問題,不知道到底是你前端調用的問題,還是我后端代碼寫的有毛病,反正測試工程師就只知道庫存沒有減;

解決方案就是,記日志;

記錄日志

首先,springboot里面有集成好的日志組件,我們僅需拿來用即可,接下來,我將會分幾個步驟來教大家如何在記日志;

1.首先我們打開一個編寫好的子項目(服務),在yml配置文件中進行一些簡單的配置?:

logging:
  path: 日志打印輸出路徑
  level:
  該服務的全包名: #級別【info級別最好,我用的是debug級別】

如何使用SpringCloud跟蹤分布式鏈路

2.在我們的Controllerc引入Logge接口?:

 public static Logger logger = LoggerFactory.getLogger(#當前類);

注意:引入Logger時,它有許多個記日志的版本,java統一了成了slf4j,所以導入包的時候一定注意不要導錯!

如何使用SpringCloud跟蹤分布式鏈路

2.導入成功并且后需要把當前類加入到日志中?:

如何使用SpringCloud跟蹤分布式鏈路

如何使用SpringCloud跟蹤分布式鏈路

3.開始調用日志

在控制層接口中調用日志

logger.debug("執行了查詢,開始調用project-solr的服務");

如何使用SpringCloud跟蹤分布式鏈路

這里的話就簡單的記錄一下日志,將來方便追錯;

4.運行程序,查看是日志是否能被記錄

首先運行注冊中心,再啟動自己寫好的服務朝注冊中心注冊一下

查看注冊中心:

如何使用SpringCloud跟蹤分布式鏈路

發現solr注冊進來了,注冊中心我這邊用的是集群負載均衡,三個注冊中心相互注冊,在后面可以清楚的看到我另外三個注冊中心的端口號

5.調用solr服務,查看日志是否輸出并打印?:

如何使用SpringCloud跟蹤分布式鏈路

點擊去查看一下?:

如何使用SpringCloud跟蹤分布式鏈路

總中我我們可以清楚的看到,從開始,到結束,就是中間打印了一些其他的東西,這個先不去深究它;

小結

在工作中,別人的代碼到底能不能執行成功,你是保證不了的,唯有記日志,來證明自己的代碼沒有問題,從上我選擇在調用前打印日志,在調用后也打印了日志,說明我這個接口沒有問題,但是,你調用你的solr服務,出現了問題,那是你的問題,跟我調用無關,我正常調用沒問題,至于后面庫存沒有減少,那,就是你的問題;

給solr添加日志記錄

剛才我是以調用對方服務的方式來記錄日志,保證自己正常調用,那么,我們solr也應該記錄一下日志,因為,它也保證不了調用solr的人,是否存在調用問題,所以,我要保證我solr正常執行,為了證明我是沒有問題的,所以我們也給solr這個服務記錄日志;

很簡單,跟上面的一樣,我直接復制粘貼即可,但是這次稍微的改一下;

logging:
  path: C:\Users\30901\Desktop\log\project_solr
  level:
  com.lh.project.solr: info

注意:級別前面的包名需要更改成當前服務的包名,這次我在日志輸出路徑中多加了一個當前服務名,這樣打印出的日志就能分別出誰打印出來的;

如何使用SpringCloud跟蹤分布式鏈路

注意,日志文件是自動生成出來的;

我們把項目跑起來,試試,看看日志能不能被成功輸出?:

如何使用SpringCloud跟蹤分布式鏈路

我們也可以清楚的看見,日志信息在這里打印的非常清楚;

這個是它自動生成的日志文件:

如何使用SpringCloud跟蹤分布式鏈路

分布式鏈路追蹤

首先需要引入依賴:

compile 'org.springframework.cloud:spring-cloud-starter-sleuth'

如何使用SpringCloud跟蹤分布式鏈路

根據以上的例子,兩個服務均需要用到用到分布式鏈路跟蹤,所以我們兩個兩個都配置一下;

加完所需依賴后,我們再進行日志的輸出,看看有什么區別?:

如何使用SpringCloud跟蹤分布式鏈路

區別就能發現,前面多出來了一串亂碼,跟上面對比,就能看出來,那么具體是什么意思呢?

首先打印出來的日志有兩個,一個是調用方,一個是被調用方,我們打開這兩個日志來看一下:

如何使用SpringCloud跟蹤分布式鏈路

這個時候,假設,以上一個請求,其中一個有問題,那么,你就可以把這個有問題的這個亂碼跟被調用方里面的日志進行匹配,如果查詢到了,那么說明這兩個日志,對應的是同一個請求,咱們就可以通過這個亂碼就可以判斷,這兩個服務調用的到底是不是屬于同一個請求;

這個亂碼分成三段:

如何使用SpringCloud跟蹤分布式鏈路

關于如何使用SpringCloud跟蹤分布式鏈路問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

十堰市| 尚志市| 尚义县| 孝感市| 永仁县| 北碚区| 金湖县| 五原县| 河北省| 罗定市| 耿马| 弥勒县| 庄河市| 海口市| 顺平县| 元谋县| 巴林右旗| 冷水江市| 咸阳市| 布尔津县| 牙克石市| 姜堰市| 茶陵县| 五指山市| 汪清县| 永春县| 顺昌县| 鸡东县| 丰镇市| 平凉市| 临高县| 汉川市| 元氏县| 九寨沟县| 樟树市| 维西| 汶上县| 河北省| 兴业县| 商洛市| 金华市|