1.开篇
在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
所以,我们就需要有一种技术能够展现微服务调用的链路、同时对这些链路进行监控查看。而SpringCloud Sleuth就提供了一套完整的服务链路跟踪解决方案。
要实现服务链路监控,首先我们要下载zipkin的jar包,下载地址:https://repo1.maven.org/maven2/io/zipkin/zipkin-server/
下载完成之后,到当前jar包的目录下,打开cmd窗口,java -jar zipkin-server-2.14.1-exec.jar 运行即可,这就是zipkin的服务后台。
运行成功之后,到浏览器中输入:localhost:9411/zipkin,即可访问zipkin的控制台界面。
2.项目源码
github源码地址:https://github.com/2656307671/SpringCloud-Hoxton-Sleuth
gitee源码地址:https://gitee.com/szh-forever-young/SpringCloud-Hoxton-Sleuth
详细的代码就参考上面的仓库吧,主要是pom、yml、controller做了修改。
下面依次启动7001、8001、80进行测试。让80服务消费者调用8001服务提供者(请求多发几次)。
在80多次调用8001之后,浏览器中访问localhost:9411/zipkin,即可看到相关的调用链路。
80服务消费者是依赖于8001服务提供者的,localhost/consumer/payment/zipkin请求依赖于localhost:8001/payment/zipkin。
请求路径前面的get表示的是发送get请求,也就是controller中的@GetMapping。