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
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服务器地址
参考文章: