通过使用Sleuth和ZipKin,我们可以在其提供的控制台上看到每次请求之中各个服务之间的调用关系以及每个服务涉及的具体接口信息、耗时信息等,总而言之就是提供了对整个微服务架构进行监控分析的功能。
自从springboot2.0以后,其官方提供了Zipkin Server服务的jar,直接下载运行即可,或者自己创建一个springboot项目然后导入Zipkin Server的jar包然后启动,这里我们就使用简单点的方法,直接去官网下载jar包然后启动。ZipKin官网:https://zipkin.io/pages/quickstart.html
出现如下图则代表启动成功:
可以访问你安装机器的ip+9411端口,即可访问:
pom.xml中需要导入sleuth和zipkin的依赖:
<!-- sleuth --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <!-- zipkin --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
在项目的yml文件中配置zipkin和sleuth的参数:
#整合sleuth和zipkinzipkin:base-url: http://10.10.83.73:9411sender:type: websleuth:sampler:#采样100%probability:1.0
注意:zipkin是spring下的,sleuth是zipkin下的,我的项目中还有微服务的其他依赖,例如gateway和nacos,他们都是spring.cloud下的,而zipkin是spring下的,别配置错了,错了不起作用。
想要进行链路追踪的服务都要加上对应的yml配置和依赖
启动我们的服务,然后随便访问我们项目的某个页面,然后登陆安装Zipkin Server机器的ip+9411端口,结果如下:
页面上可以看到已经追踪了一些接口,而且由于我们是从项目访问的,都会走网关进行校验、路由转换,所以展示的root都是cloud-gateway。我们打开第三个看一下具体的,图如下:
点击右边的SHOW按钮能看到具体的服务调用链,能看到各个服务的调用顺序、耗时以及各个服务的名字如下:
点击各个服务右边的长条能看到调用该服务接口的详情,对应于具体的Controller和menthod方便问题的排查。
本文只是简单介绍使用,具体更详细的参数配置根据各自的使用场景进行配置。