SpringCloud:分布式请求链路跟踪-Sleuth

概述

分布式请求链路跟踪:

为什么会出现这个技术,要解决哪些问题。

在微服务框架中,一个客户端发起的请求在后端系统中会经过多次不同的服务节点调用来协同产生最后的请求结果,每一个前段请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时或错误都会引起整个请求最后的失败。
SpringCloudSleuth提供了一套完整的服务跟踪的解决方案,在分布式系统中提供乐追踪解决方案并且兼容支持了zipkin。

二、搭建链路监控步骤

2.1 zipkin

Sleuth:负责跟踪整理,zipkin:负责展现

2.1.1 下载

SpringCloud从F版起已不需要自己构建Zipkin Server了,只需调用jar包即可

下载地址

zipkin-server-2.12.9-exec.jar

2.1.2 运行jar&运行控制台

cd到zipkin-server-2.12.9-exec.jar的下载目录
运行java -jar zipkin-server-2.12.9-exec.jar

访问:http://ip:9411/zipkin/

SpringCloud:分布式请求链路跟踪-Sleuth

zipkin启动成功

2.1.3 完整的调用链路

表示一请求链路,一条链路通过Trace Id唯一标识,Span标识发起的请求信息,各span通过parent id 关联起来

SpringCloud:分布式请求链路跟踪-Sleuth

Trace:类似于树结构的Span集合,表示一条调用链路,存在唯一标识。
Span:表示调用链路来源,通俗的理解Span就是一次请求信息。各个Span通过parentID关联起来。

SpringCloud:分布式请求链路跟踪-Sleuth

SpringCloud:分布式请求链路跟踪-Sleuth

2.2 服务提供者cloud-provider-payment8001

2.2.1 pom

引入spring-cloud-starter-zipkin依赖,其包含了sleuth+zipkin

 2.2.3 yaml

新增:

SpringCloud:分布式请求链路跟踪-Sleuth

2.2.3 业务类PaymentController

2.3 服务消费者cloud-consumer-order80

2.3.1 pom

引入spring-cloud-starter-zipkin依赖,其包含了sleuth+zipkin

2.3.2 yml

2.3.3 业务类OrderController

2.4 测试

启动7001、7002、8001、80

访问:http://localhost:8001/payment/zipkin/

访问:http://localhost/consumer/payment/zipkin/

打开浏览器访问:http://zipkin-ip:9411

SpringCloud:分布式请求链路跟踪-Sleuth

SpringCloud:分布式请求链路跟踪-Sleuth

正文完
 0