使用zipkin監控spring cloud gateway

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服務器地址

參考文章:

1、https://github.com/openzipkin/zipkin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章