SpringCloud-Sleuth 分布式请求链路跟踪
Sleutd的作用
在微服务系统中,客户端发起的一个请求在后端系统中可能会经过多个不同的服务节点,当系统变得复杂、庞大,每个前端请求都会形成一条复杂的分布式服务调用链路,链路的任何一个环节出了差错就会导致整个请求的失败
Spring Cloud Sleuth 提供了一套完整的服务跟踪的解决方案,并兼容支持了 zipkin,为了方便监控,我们需要安装一下 Zipkin
安装 Zipkin 监控平台
Spring Cloud 从 F 版起就不需要自己构建 Zipkin Server 了,只需要导入 jar 包即可
1、下载:http://dl.bintray.com/openzipkin/maven/io/zipkin/java/zipkin-server/
2、使用 java -jar
命令运行
3、浏览器访问 http://localhost:9411/zipkin/
,进入如下界面即可
zipkin 基本原理
一条链路通过 trace Id 标识,Span 标识发起的请求信息,各个 Span 通过 Parent Id 关联
整个链路的依赖关系如下所示:
Trance:类似于树结构的 Span 的集合,表示一条调用链路,存在唯一标识
Span:表示调用链路的来源,通俗来说 Span 就是一次请求信息
进行链路监控
需要的依赖(zipkin 中是包含 sleuth 的)
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
添加配置
spring:
zipkin:
# 指定 zipkin 地址
base-url: http://localhost:9411
sleuth:
sampler:
# 采样率介于 0~1 之间,1表示全部采集
probability: 1
在服务提供者、消费者上都添加上述配置之后,发送的请求就会被监控了,可以在 zipkin 可视化界面查看详情