使用zipkin监控spring cloud gateway

2022-03-29 14:46:40 浏览数 (1)

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包

点击文件名一列即可下载该执行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

代码语言:javascript复制
docker run -d -p 9411:9411 openzipkin/zipkin

3、自己搭建zipkin-server服务

引入下面两个依赖

代码语言:javascript复制
<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个依赖:

代码语言:javascript复制
        <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

0 人点赞