前言
參考資料:
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服務原理與實戰(zhàn)》
《B站 尚硅谷 SpringCloud 框架開發(fā)教程 周陽》
微服務的調試問題會比較復雜,可以使用分布式追蹤解決;
1. 分布式追蹤的基本概念
又稱:分布式請求鏈路跟蹤争涌;
1.1 該技術的提出背景
- 在微服務框架中,一個由客戶端發(fā)起的請求在后端系統(tǒng)中會經過多個不同的的服務節(jié)點調用來協(xié)同產生最后的請求結果侧漓,每一個前段請求都會形成一條復雜的分布式服務調用鏈路,鏈路中的任何一環(huán)出現(xiàn)高延時或錯誤都會引起整個請求最后的失敱鹩妗吱韭;
1.2 分布式追蹤的幾種不同方向
- 追蹤日志鏈 -> Sleuth:使用一個追蹤 ID 將跨多個服務的日志串聯(lián)起來
- 日志聚合 -> Papertrail:將所有服務實例的日志流到一個集中的聚合點;
- 可視化事務流 -> Zipkin:
- 正好對應下面將要介紹的三種技術鳍刷;
1.3 日志聚合架構的概念圖
日志聚合架構的概念圖.png
1.4 幾種開源的日志聚合產品
產品名稱 | 實現(xiàn)模式 | 備注 |
---|---|---|
Elasticsearch;Logstash俯抖;Kibana (ELK) | 開源输瓜;商業(yè);通常實施與內部部署 | 通用搜索引擎芬萍;可以通過 ELK 技術棧進行日志聚合尤揣;需要最多的手工操作 |
Graylog | 開源;商業(yè)柬祠;內部部署 | 設計為在內部安裝的開源平臺 |
Splunk | 商業(yè)北戏;內部部署和基于云 | 最古老且最全面的日志管理和聚合工具;最初是內部部署漫蛔,后來提供云服務 |
Sumo Logic | 免費增值模式嗜愈;商業(yè);基于云 | 免費增值模式/分層定價模型莽龟;僅作為云服務運行蠕嫁;需要用公司的工作賬戶去注冊 |
Papertrail | 免費增值模式;商業(yè)毯盈;基于云 | 免費增值模式/分層定價模型剃毒;僅作為云服務運行; |
1.5 目前幾種流行的分布式追蹤組件對比
名稱 | 廠商 | 特點(優(yōu)點) | 缺點 |
---|---|---|---|
Spring Cloud Sleuth | Spring Cloud | ||
Papertrail | |||
Zipkin |
2. Spring Cloud Sleuth
Spring Cloud Sleuth 是一個 Spring Cloud 項目搂赋,它將關聯(lián) ID 裝備到 HTTP 調用上赘阀,并將生成的跟蹤數(shù)據提供給 OpenZipkin 的鉤子。Spring Cloud Sleuth 通過添加過濾器并與其他 Spring 組件進行交互脑奠,將生成的關聯(lián) ID 傳遞到所有系統(tǒng)調用基公;
- 即:使用追蹤D將跨多個服務的事務鏈接在一起;
- 點擊訪問:微服務架構 | 10.1 使用 Sleuth 追蹤服務調用鏈捺信;
3. Papertrail
Papertrail 是一種基于云的服務(基于免費增值)酌媒,允許開發(fā)人員將來自多個源的日志數(shù)據聚合到單個可搜索的數(shù)據庫中欠痴。開發(fā)人員可以為日志聚合選擇的解決方案包括內部部署解決方案、基于云解決方案秒咨、開源解決方案和商業(yè)解決方案喇辽;
- 即:來自多個服務的日志數(shù)據聚合為一個可搜索的源 ;
- 點擊訪問:微服務架構 | 10.2 使用 Papertrail 實現(xiàn)日志聚合雨席;
4. Zipkin
Zipkin 是一種開源數(shù)據可視化工具菩咨,可以顯示跨多個服務的事務流。Zipkin 允許開發(fā)人員將事務分解到它的組件塊中陡厘,并可視化地識別可能存在性能熱點的位置抽米;
- 即:可視化跨多個服務的用戶事務流,并理解事務每個部分的性能特征 糙置;
- 點擊訪問:微服務架構 | 10.3 使用 Zipkin 可視化日志追蹤云茸;