
養成閱讀好習慣,從關注開始!java
更多Java相關資料能夠關注公衆號【Java大蝸牛】發送:6git
Spring Cloud Sleuth:分佈式請求鏈路跟蹤github
- Spring Cloud Sleuth 簡介
- 給服務添加請求鏈路跟蹤
- 整合Zipkin獲取及分析日誌
- 使用Elasticsearch存儲跟蹤信息
- 安裝Elasticsearch
- 修改啓動參數將信息存儲到Elasticsearch
- 更多啓動參數參考
Spring Cloud Sleuth 是分佈式系統中跟蹤服務間調用的工具,它能夠直觀地展現出一次請求的調用過程,本文將對其用法進行詳細介紹。spring
Spring Cloud Sleuth 簡介
隨着咱們的系統愈來愈龐大,各個服務間的調用關係也變得愈來愈複雜。當客戶端發起一個請求時,這個請求通過多個服務後,最終返回告終果,通過的每個服務都有可能發生延遲或錯誤,從而致使請求失敗。這時候咱們就須要請求鏈路跟蹤工具來幫助咱們,理清請求調用的服務鏈路,解決問題。app
給服務添加請求鏈路跟蹤
咱們將經過user-service和ribbon-service之間的服務調用來演示該功能,這裏咱們調用ribbon-service的接口時,ribbon-service會經過RestTemplate來調用user-service提供的接口。elasticsearch
- 首先給user-service和ribbon-service添加請求鏈路跟蹤功能的支持;
- 在user-service和ribbon-service中添加相關依賴:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
- 修改application.yml文件,配置收集日誌的zipkin-server訪問地址:
spring: zipkin: base-url: http://localhost:9411 sleuth: sampler: probability: 0.1 #設置Sleuth的抽樣收集機率
整合Zipkin獲取及分析日誌
Zipkin是Twitter的一個開源項目,能夠用來獲取和分析Spring Cloud Sleuth 中產生的請求鏈路跟蹤日誌,它提供了Web界面來幫助咱們直觀地查看請求鏈路跟蹤信息。maven
- SpringBoot
2.0以上版本已經不須要自行搭建zipkin-server,咱們能夠從該地址下載zipkin-server: - https://repo1.maven.org/maven2/io/zipkin/java/zipkin-server/2.12.9/zipkin-server-2.12.9-exec.jar
- 下載完成後使用如下命令運行zipkin-server:
java -jar zipkin-server-2.12.9-exec.jar
- Zipkin頁面訪問地址:http://localhost:9411

- 啓動eureka-sever,ribbon-service,user-service:

- 屢次調用(Sleuth爲抽樣收集)ribbon-service的接口http://localhost:8301/user/1
,調用完後查看Zipkin首頁發現已經有請求鏈路跟蹤信息了;

- 點擊查看詳情能夠直觀地看到請求調用鏈路和經過每一個服務的耗時:

- 使用Elasticsearch存儲跟蹤信息
- 下載Elasticsearch6.2.2的zip包,並解壓到指定目錄,下載地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-2

- 運行bin目錄下的elasticsearch.bat啓動Elasticsearch

- 修改啓動參數將信息存儲到Elasticsearch
- 使用如下命令運行,就能夠把跟蹤信息存儲到Elasticsearch裏面去了,從新啓動也不會丟失;
更多啓動參數參考
https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage分佈式
好了,今天的文章就分享到這裏,更多Java相關資料能夠關注公衆號【Java大蝸牛】發送:6工具
