Spring Cloud Sleuth 主要功能就是在分佈式系統中提供追蹤解決方案,而且兼容支持了 zipkin,你只須要在pom文件中引入相應的依賴便可。html
微服務架構上經過業務來劃分服務的,經過REST調用,對外暴露的一個接口,可能須要不少個服務協同才能完成這個接口功能,若是鏈路上任何一個服務出現問題或者網絡超時,都會造成致使接口調用失敗。隨着業務的不斷擴張,服務之間互相調用會愈來愈複雜。java
本小節教程將講述如何使用sleuth和zipkin來構建微服務的鏈路追蹤。mysql
下載地址以下,並啓動: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 ,能夠看到服務依賴,以下:瀏覽器
能夠看到請求的具體耗時:
www.fangzhipeng.com/springcloud…