目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7089.8k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(1.1k)
赞(0)

分布式请求链路追踪_Spring Cloud Sleuth是什么

image-20220303174738898

Spring Cloud Sleuth实现了一种分布式的服务链路跟踪解决方案,通过使用Sleuth可以让我们快速定位某个服务的问题。简单来说,Sleuth相当于调用链监控工具的客户端,集成在各个微服务上,负责产生调用链监控数据。

注意:

Spring Cloud Sleuth只负责产生监控数据,通过日志的方式展示出来,并没有提供可视化的UI界面。

Sleuth核心概念

image-20220304152936809

  • Span:基本的工作单元,相当于链表中的一个节点,通过一个唯一ID标记它的开始、具体过程和结束。我们可以通过其中存储的开始和结束的时间戳来统计服务调用的耗时。除此之外还可以获取事件的名称、请求信息等。
  • Trace:一系列的Span串联形成的一个树状结构,当请求到达系统的入口时就会创建一个唯一ID(traceId),唯一标识一条链路。这个traceId始终在服务之间传递,直到请求的返回,那么就可以使用这个traceId将整个请求串联起来,形成一条完整的链路。

image-20220303173542318

通过这些Sleuth 的特殊标记,我们就可以根据时间顺序,将一次服务请求经过的调用节点都梳理出来,这样你就能迅速发现报错信息发生在哪个阶段。这是使用Zipkin 生成的链路追踪的可视化信息。你可以看出,每个服务调用都以时间先后顺序规整好了,红色的部分就是发生线上Exception的服务。

image-20220303173842567

除了Trace和Span之外,Sleuth还有一个特殊的数据结构,叫做Annotation,被用来记录一个具体的“事件”。我把 Sleuth所支持的四种事件做成了一个表格,你可以参考一下。

image-20220303173929988

在这里我举个例子,来帮你理解怎么使用这四种事件。

image-20220303174004873

流程:

如果你用服务B的ss减去 sr,你就可以得到请求在服务B阶段的处理时间。如果用服务B的sr减去服务A的cs,就可以得到服务A到服务B之间的网络调用延迟时间。如果用服务A的 cr减去 cs,就可以得到当次请求从发起到结束所花费的总时间。

实时效果反馈

1.Spring Cloud Sleuth只负责_____数据。

A 服务熔断

B 负载均衡

A 注册中心

B 负载均衡

C 产生监控数据

D 链路追踪

2.Spring Cloud Sleuth是通过____来实现链路追踪。

A 打标记

B 打日志

C 保存数据库

D 以上都是错误

答案

1=>C 2=>A

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2