1. 为什么要用链路跟踪
链路追踪是一种用于分析和监控应用程序的方法,尤其是那些使用微服务架构的那些应用。生产上服务之间进行交互发生异常时,往往我们需要花费大量的时间查找各个服务之间的日志进行异常定位,集成分布式链路跟踪能更好的帮我们进行监控和分析。
2. Sleuth和Zipkin的作用
SpringCloud全家桶中,整合了Sleuth和Zipkin做分布式链路跟踪和数据的收集展示。
Sleuth:为服务之间调用提供链路追踪。通过 Sleuth 可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长。
Zipkin:可以使用它来收集各个服务器上请求链路的跟踪数据,并通过它提供的 REST API 接口来辅助我们查询跟踪数据以实现对分布式系统的监控程序,从而及时地发现系统中出现的延迟升高问题并找出系统性能瓶颈的根源。
Spring Cloud Zipkin 整合了Sleuth和Zipkin的功能,提供了一套完整的分布式链路解决方案。
3. Zipkin安装
本次安装统一使用docker进行安装本次搭建不进行数据持久化。后续更新Zipkin链路跟踪数据持久化
3.1 安装步骤
3.1.1 docker search zipkin
3.1.2 docker pull zipkin
3.1.3 docker run --name zipkin --restart=always -p 9411:9411 -d zipkin
3.1.4 docker logs -f zipkin 查看运行是否正常
3.1.5 访问zipkin后台页面
4. Zipkin整合
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
5. Zipkin应用