Zipkin簡介
Zipkin 是 Twitter 的一個開源項目朦促,它基于 Google Dapper 實現(xiàn)”刹牛可以用來收集各個服務(wù)器上請求鏈路的跟蹤數(shù)據(jù)酵幕,并通過 REST API 來輔助查詢跟蹤數(shù)據(jù)以實現(xiàn)對分布式系統(tǒng)的監(jiān)控程序,從而及時地發(fā)現(xiàn)系統(tǒng)中出現(xiàn)的延遲升高的問題缓艳,找出系統(tǒng)性能瓶頸的根源校摩。除了面向開發(fā)的 API 接口之外,它也提供了方便的 UI 組件阶淘,來幫助我們直觀地搜索跟蹤信息和分析請求鏈路明細衙吩,比如:可以查詢某段時間內(nèi)各用戶請求的處理時間等。
使用步驟
1. 搭建 Zipkin Server
- 創(chuàng)建一個基礎(chǔ)的Spring Boot應(yīng)用舶治,并在 pom.xml 中引入 Zipkin Server 的相關(guān)依賴分井,具體如下:
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
</dependency>
- 在應(yīng)用主類中使用 @EnableZipkinServer 注解來啟動Zipkin Server,具體如下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import zipkin.server.EnableZipkinServer;
@EnableZipkinServer
@SpringBootApplication
public class TracingApplication {
public static void main(String[] args) {
SpringApplication.run(TracingApplication.class, args);
}
}
- 在 application.yml 中做一些簡單配置霉猛,比如:設(shè)置服務(wù)端口號為9411(客戶端整合時候,自動化配置會連接9411端口珠闰,所以在服務(wù)端設(shè)置了端口為9411的話惜浅,客戶端可以省去這個配置)。
server:
port: 9411
spring:
application:
name: tracing
- 創(chuàng)建完上述工程之后伏嗜,我們將其啟動起來坛悉,并訪問 http://localhost:9411/,我們可以看到 Zipkin 管理頁面承绸。
2. 在微服務(wù)中引入和配置 Zipkin
- 在微服務(wù)的 pom.xml 中引入對 Spring Cloud Sleuth 和 Zipkin 的依賴裸影,具體如下所示:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
- 在微服務(wù)的 application.yml 中增加 Zipkin Server 的配置信息,具體如下所示:
spring:
zipkin:
base-url: http://localhost:9411
3. 測試與分析
- 使用微服務(wù)進行服務(wù)間的調(diào)用军熏。
- 在Zpinkin 管理頁面中轩猩,查看微服務(wù)相互調(diào)用的數(shù)據(jù)。