spring cloud 分散式鏈路追蹤
阿新 • • 發佈:2018-12-09
微服務之間進行呼叫 那麼如果我負責一個模組 別人負責另一個模組 我呼叫了他的方法 測試那邊卻報了錯 那是我的問題還是他的問題
這個時候大家應該就能想到日誌可以解決這個問題
如何使用日誌呢 先在配置檔案中加
logging:
path:D:\logs\poppy-mall#日誌的存放地址最好再加個專案名的資料夾可以更容易的區分
level:
org.poppy.mall:info#日誌的級別org.poppy.mall是你的包名
然後就可以在你想新增日誌的類中寫上
publicstaticLoggerlogger=LoggerFactory.getLogger(類名.class);
之後就在你想加日誌的地方加上 logger.info(日誌資訊)
執行後會自動在你寫的日誌存放的地址加入日誌檔案 (它會自動生成資料夾)
檢視一下內容
是這個樣子的 這樣就解決了排錯的問題
那麼新問題又來了 如果我呼叫了幾萬次這個方法 我怎麼才能找得到我這個服務呼叫的到底是那次請求的另一個微服務?
這時候就用到了分散式鏈路追蹤
先引入依賴 想要追蹤那個專案 都要在裡面加入這個依賴
compilegroup:'org.springframework.cloud',name:'spring-cloud-starter-sleuth'
之後再執行 檢視日誌 發現是這個樣子
可以發現多出來一串編碼 它有什麼用呢
粉色框的編碼 它代表的是在同一次請求中 編碼就相同 紅色框的程式碼 代表的是在同一服務中 它會相同
這樣就解決了我們的問題 我們只要找到報錯的一次請求 複製粉色框內的編碼 到另一個服務的日誌中進行查詢 就能找到
這就是分散式鏈路跟蹤