SpringCloud 2020版本教程4:使用spring cloud sleuth+zipkin實現鏈路追蹤

Spring Cloud Sleuth+zipkin實現鏈路追蹤

Spring Cloud Sleuth 主要功能就是在分佈式系統中提供追蹤解決方案,而且兼容支持了 zipkin,你只須要在pom文件中引入相應的依賴便可。html

微服務架構上經過業務來劃分服務的,經過REST調用,對外暴露的一個接口,可能須要不少個服務協同才能完成這個接口功能,若是鏈路上任何一個服務出現問題或者網絡超時,都會造成致使接口調用失敗。隨着業務的不斷擴張,服務之間互相調用會愈來愈複雜。java

本小節教程將講述如何使用sleuth和zipkin來構建微服務的鏈路追蹤。mysql

下載zipkin server並啓動

下載地址以下,並啓動:git

curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar

複製代碼

訪問zipkin的ui 界面,地址爲localhost:9411github

改造工程

在三個工程provider\consumer\gateway的pom文件加上如下的依賴:web

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
        </dependency>
複製代碼

三個工程的配置文件application.yml加上如下的配置:spring

spring.zipkin.sender.type: web
#設置採樣率默認爲 0.1 注意以前的版本是percentage 新版本中更換爲 probability
spring.sleuth.sampler.probability: 1
spring.zipkin.base-url: http://localhost:9411/
spring.zipkin.service.name: consumer

複製代碼

zipkin server支持mq方式收集鏈路信息,同時支持多種數據存儲方式,好比es\mysql等,更多收集數據和存儲方式見:github.com/openzipkin/…sql

啓動三個工程,在瀏覽器上訪問:http://localhost:5000/consumer/hi-feignapi

訪問zipkin server的api ,能夠看到服務依賴,以下:瀏覽器

能夠看到請求的具體耗時:

參考文檔

zipkin.io/pages/quick…

www.fangzhipeng.com/springcloud…

源碼下載

github.com/forezp/Spri…

相關文章
相關標籤/搜索