Zipkin是SpringCloud官方推薦的一款分布式鏈路監控的組件,使用它我們可以得知每一個請求所經過的節點以及耗時等信息,並且它對代碼無任何侵入,我們先來看一下Zipkin給我們提供的UI界面都是提供了哪些信息。
- zipkin首頁為我們提供了對於調用鏈路的搜索查詢及展示的功能
- 第二個選項卡里提供了歷史數據的導入功能
- 第三個選項卡里展示了各個微服務之間的關系
- 我們再次回到首頁,我們點開一個調用鏈路之后就會看到此次鏈路調用的詳情
- 現在我們點開詳情中的一個service,可以看到此次調用在這個微服務中的詳細信息。
如何使用Zipkin
雖然在SpringBoot2.0以后官方不推薦我們自定義Zipkin服務端,而是使用官方提供的jar包。但是作為開發者來說,如果不能去看一看源碼,修改一些自定義的配置的話就好像生命掌握在別人手里一樣,哪天碰到一個莫名奇妙的bug可就不開心了。所以本例中使用zipkin最新2.11.8release版本來構建一個服務端
1. 創建一個微服務 cloud-demo-zipkin-server
1. pom.xml
1 |
<dependency> |
2. yml
1 |
server: |
3. 啟動注解
1 |
@EnableEurekaClient |
需要注意的是EnableZipkinServer注解是zipkin2.server.internal包下的。
2. 創建一個微服務 cloud-demo-zipkin-server
改造一下我們原先的兩個微服務:cloud-demo-consumer-feign-hystrix,cloud-demo-provider
首先為它們都加上zipkin客戶端的依賴
1 |
<dependency> |
yml中指定zipkin-server的url,並且指定日志發送方式為web
1 |
spring: |
3. 查看結果
此時我們所有的准備工作已經做好了,我們啟動Eureka、zipkin、cloud-demo-consumer-feign-hystrix、cloud-demo-provider幾個微服務,調用幾次cloud-demo-consumer-feign-hystrix的user/getUser接口。然后訪問http://localhost:9411應該就可以看到zipkin的UI界面。
這個時候可能有的童鞋看到有數據,有的沒有數據,這個不是你的配置錯了,而是因為zipkin客戶端默認收集10%的數據,你可以使用下方的配置更改zipkin的采樣頻率。
1 |
spring: |
GitHub地址:https://github.com/shiyujun/spring-cloud-demo。代碼所在模塊:cloud-demo-zipkin-server,cloud-demo-consumer-feign-hystrix,cloud-demo-provider
如果對您有所幫助,請記得幫忙點一個star哦
本文出自http://zhixiang.org.cn,轉載請保留。