利用Spring Cloud Sleuth集成的zipkin组件实现服务链路追踪
1.简介
Spring Cloud Sleuth 主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了 zipkin,你只需要在pom文件中
引入相应的依赖即可。
2.服务追踪分析
微服务架构上是通过业务来划分服务的。通过REST调用,对外暴露的一个接口,可能需要很多个服务协同才能完成这个
接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务
之间互相调用会越来越复杂。
随着服务的越来越多,对调用链的分析会越来越复杂。
3.实战
3.1 建立zipkin-server模块,在zipkin服务模块pom.xml中添加依赖如下:
3.2 在程序启动类, 加上注解@EnableZipkinServer,开启ZipkinServer的功能:
3.3 在配置文件application.yml中指定服务端口:
3.4 在自己的业务应用模块里添加依赖:
3.5 在其配置文件中指定zipkin-server的地址,通过配置spring.zipkin.base-url来指定:
3.6 在应用启动类里增加AlwaysSampler类的Bean注入:
注:用于追踪每个调用链路
3.7 依次启动以上三个项目(我这里创建了三个项目,zipkin-server,server-hi,server-miya),
打开浏览器访问:http://localhost:9411/,会出现以下界面:
3.8 访问:http://localhost:8989/miya,浏览器出现:
3.9 刷新http://localhost:9411/的界面,点击Dependencies,可以发现服务的依赖关系:
3.10 点击find traces,可以看到具体服务相互调用的数据:
点击每一条,可进入查看调用关系和详情。
具体实施方案可根据项目实际情况进行适配。
至此,结束。示例代码可参考如下链接: