一、基本概念
在分布式系统中,微服务有多个,服务之间调用关系也比较复杂,如果有的微服务网络或者服务器出现问题会导致服务提供失败,如何快速便捷的去定位出现问题的微服务,SpringCloud Sleuth 给我们提供了解决方案,它集成了Zipkin、HTrace 链路追踪工具,用服务链路追踪来快速定位问题。Zipkin使用较多。Zipkin 主要由四部分构成:收集器、数据存储、查询以及 Web 界面。Zipkin 的收集器负责将各系统报告过来的追踪数据进行接收;而数据存储默认使用 Cassandra,也可以替换为 MySQL;查询服务用来向其他服务提供数据查询的能力,而 Web 服务是官方默认提供的一个图形用户界面。
随着我们的系统越来越庞大,各个服务间的调用关系也变得越来越复杂。当客户端发起一个请求时,这个请求经过多个服务后,最终返回了结果,经过的每一个服务都有可能发生延迟或错误,从而导致请求失败。这时候我们就需要请求链路跟踪工具来帮助我们,理清请求调用的服务链路,解决问题。
完整的链路图
精简版
二、下载与启动
- SpringCloud从F版已不需要自己构建Zipkin Server了,只需要调用jar包即可
下载地址:https://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
- 运行:在zipkin-server-2.12.9-exec.jar的目录下cmd执行
java -jar .\zipkin-server-2.12.9-exec.jar
- 运行控制台
三、模块搭建
1、pom添加
<!--包含了sleuth+zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
2、修改application.yml
spring:
application:
name: cloud-order-service
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
#采样率值介于 0 到 1 之间,1 则表示全部采集
probability: 1
3、测试
访问相应的微服务时,http://localhost:9411/zipkin/会有相应的详细信息
微服务之间的依赖关系