spring cloud gateway是spring cloud家族最新的api網關,之前用的是netflix zuul 1.0,netflix 2.0最終沒有孵化出來,於是spring自己開發了現在的spring cloud gateway,與zuul 1.0不同的是spring cloud gateway是基於spring5 springboot2以及proactor技術棧開發的第二代網關,由於本文重點不是spring cloud gateway,這裏就不再贅述,詳情參考https://spring.io/projects/spring-cloud-gateway,某個接口返回慢時我們需要分析具體原因,到底在哪個環境出了問題或者速度被拉慢,在分佈式系統中調用鏈追蹤的功能不可或缺,這方便我們更快的找到問題出處,解決問題。zipkin是一款不錯的調用鏈追蹤工具,類似的還有skywalking以及pinpoint,本文講述zipkin環境的搭建
使用zipkin有以下幾種方式
1、下載zipkin-server jar包,在阿里maven倉庫https://maven.aliyun.com,搜索zipkin-server
點擊文件名一列即可下載該執行jar包,執行java -jar zipkin-server-2.19.2-exec.jar啓動即可
需要注意的是classifier一列爲exec,這個是可直接執行的完整程序,classifier爲空的zipkin-server-2.19.2.jar不是完整的zipkin,這只是zipkin的一部分,如果展示,需要zipkin-autoconfigure-ui這個jar包
2、通過docker部署zipkin服務,更多資料可以參考https://github.com/openzipkin/zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
3、自己搭建zipkin-server服務
引入下面兩個依賴
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-server</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>io.zipkin.java</groupId>
<artifactId>zipkin-autoconfigure-ui</artifactId>
<version>2.9.2</version>
</dependency>
執行效果圖,從下圖中可以看到每個執行階段的執行時長:
PS:
api網關以及每個服務模塊需要添加下面3個依賴:
<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>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2、添加配置
spring.zipkin.base-url: localhost:9411 --zipkin服務器地址
參考文章: