项目的DEMO代码:https://github.com/heyu52/-spring-cloud
微服务架构是通过业务来划分服务的,使用 REST 调用。对外暴露的一个接口,可能需要很多个服务协同才能完成这个接口功能,如果链路上任何一个服务出现问题或者网络超时,都会形成导致接口调用失败。随着业务的不断扩张,服务之间互相调用会越来越复杂。可能到了最后,已经没有人能说得清,一个服务下来,一共经历过了哪些模块的调用。面对以上情况,我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。这就是所谓的 APM(应用性能管理)。目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking。这一节,我们讲的就是Zipkin。其体的介绍就不说了,直接讲使用。
安装
https://hub.docker.com/r/openzipkin/zipkin
docker pull openzipkin/zipkin
这个的安装,网络可能不通,办法嘛,大家都明白的。
启动 zipkin
docker run -d -p 9411:9411 openzipkin/zipkin
浏览器打开:http://192.168.0.123:9411/zipkin/
当你看到上面的页面,你就成功一半了。
接下来,我们把goodspo和goodspr与zipkin关联起来,那我们就能看到方法的链路调用了。
goodspo和goodspr的pom文件中增加引用
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
goodspo和goodspr的配置文件中增加引用
spring.zipkin.base-url=http://192.168.0.123:9411
#spring.sleuth.sampler.probability默认为0.1,1表示全记录,最详细
spring.sleuth.sampler.probability=1.0
启动项目,浏览器中输入:http://127.0.0.1:8762/goodspo/getGoodspr
完成一次goodspo调用goodspr的服务调用。你可以多刷新几次。
浏览器打开:http://192.168.0.123:9411/zipkin/
点击查找按钮
这里就是我们的调用记录情况,随便一个点进去
这里就清晰的描述了这个请求的调用情况了。