使用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

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