1. 程式人生 > >SpringCloud學習記錄——Sleuth服務鏈路追蹤(Zipkin實現)

SpringCloud學習記錄——Sleuth服務鏈路追蹤(Zipkin實現)

1、簡介。

Spring Cloud Sleuth 主要功能就是在分散式系統中提供追蹤解決方案,並且相容支援了 zipkin,你只需要在pom檔案中引入相應的依賴即可。(呃呃,講人話就是:“既然是搞分散式微服務架構,那麼隨著專案的越來越大,微服務就會越來越多,微服務之間的呼叫會越來越複雜,比如A呼叫B、B呼叫C、C呼叫D、D又呼叫A、B....,服務鏈路追蹤的作用就是用圖形化web的方式給我們展現服務之間的呼叫關係”)。


圖片來自:https://blog.csdn.net/fend0875/article/details/70314257

2、服務搭建。

新建maven module,命名為micro-service-zipkin,父專案指向micro,打包方式選擇jar,新建方式選擇“maven-archetype-webapp”。

pom.xml引入SpringBoot基礎包、spring-cloud-starter-eureka、javax.servlet-api,pom.xml依賴包匯入、引入ZUUL閘道器所需依賴zipkin-server、zipkin-autoconfigure-ui,如下圖

在src/main/java目錄下新建com.xiudoua.study.micro包,在此包下新建一個ZipkinApplication.java類,main方法新增@SpringBootApplication、@EnableZipkinServer、如下圖


在src/main/resources目錄下新建application.properties檔案(此處可新建application.properties或者application.yml檔案做配置均可),檔案結構如下:


#標註服務名稱
spring.application.name=zipkin
#標註服務埠號
server.port=8081

啟動ZipkinApplication.java,訪問http://localhost:8081即可看到zipkin服務鏈路追蹤主頁面,如下圖:


3、改造已編寫服務支援服務鏈路追蹤。

預計達到效果:add——呼叫——>feign——呼叫——>multipl.

給add專案、feign專案、multipl專案的pom.xml均新增spring-cloud-sleuth-zipkin引用(新增所需Jar引用),如下圖所示:


給add專案、feign專案、multipl專案的application.properties均新增如下配置指向zipkin服務鏈路中心:


#JustFresh 2018-04-02 配置服務鏈路追蹤伺服器地址
spring.zipkin.base-url=http://localhost:8081

add專案新增一個CallFeignController.java,程式碼如下:


給feign專案新增一個CallMultiplController.java,程式碼如下:


分別啟動eureka、zipkin、add、feign、multipl,訪問http://localhost:8083/zipkinCall、http://localhost:8087/zipkinCall。過大概一分鐘後訪問http://localhost:8081、點選Dependences即可檢視到服務間的關係,如下圖: