SpringCloud Sleuth分布式链路请求跟踪
为什么会出现这个技术?
在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求都会形成一个复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
Spring Cloud Sleuth提供了一套完整的服务跟踪的解决方案
监控界面
zipkin-server-2.12.9.exec.jar
提取码:eyl3
运行:java -jar zipkin-server-2.12.9-exec.jar
访问:http://localhost:9411/zipkin
术语
完整的调用链路
表示一请求链路,一条链路通过Trace Id唯一标识,Span标识发起的请求信息,各span通过parent id 关联起来。
每一个调用链树有一个 TraceId,每一个节点有一个 SpanId
项目集成 zipkin、sleuth
给服务提供者和消费者添加 Maven 依赖,以及 yml 配置
<!--包含了sleuth+zipkin-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
spring:
application:
name: cloud-payment-service
# zipkin 服务配置
zipkin:
base-url: http://localhost:9411
sleuth:
sampler:
#采样率值介于0~1之间,1表示全部采样,sleuth 需要对请求进行采样来读取并生成调用链,1:表示每一个请求都会被采样,0:表示不进行采样。
probability: 1