Sleuth
Sleuth
一 引言
随着服务的越来越多,对调⽤链的分析会越来越复杂。它们之间的调⽤关系也许如下图:
问题:
1:微服务之间的调⽤错综复杂,⽤户发送的请求经历那些服务,调⽤链不清楚,没有⼀ 个⾃动化⼯具来维护调⽤链。
2:⽆法快速定位调⽤链中哪个环节出了问题
二 Sleuth简介
1 SpringCloud-Sleuth
-
SpringCloud-Sleuth 提供的分布式系统中链路追踪解决⽅案
-
同类产品:
-
SkyWalking是本⼟开源的基于字节码注⼊的调⽤链分析,以及应⽤监控分析⼯具。特点 是⽀持多 种插件,UI功能较强,接⼊端⽆代码侵⼊。⽬前已加⼊Apache孵化器。
-
cat 由⼤众点评开源,基于Java开发的实时应⽤监控平台,包括实时应⽤监控,业务监控 。 集成⽅案是通过代码埋点的⽅式来实现监控。
-
2 Sleuth术语
-
span:
代表了⼀组基本的⼯作单元。为了统计各处理单元的延迟,当请求到达各个服务组件的 时候,也通过⼀个唯⼀标识(SpanId)来标记它的开始、具体过程和结束。通过SpanId 的开始和结束时间戳,就能统计该span的调⽤时间,除此之外,我们还可以获取如事件 的名称。请求信息等元数据。
-
Trace:
由⼀组Trace Id相同的Span串联形成⼀个树状结构。为了实现请求跟踪,当请求到达分 布式系统的⼊⼝端点时,只需要服务跟踪框架为该请求创建⼀个唯⼀的标识(即 TraceId),同时在分布式系统内部流转的时候,框架始终保持传递该唯⼀值,直到整个 请求的返回。那么我们就可以使⽤该唯⼀标识将所有的请求串联起来,形成⼀条完整的请求链路。
-
Annotation:⽤它记录⼀个完成请求的4个事件,内部使⽤的重要注释:
-
cs(Client Send)客户端发出请求,开始⼀个请求的⽣命
-
sr(Server Received)服务端接受到请求开始进⾏处理, sr-cs = ⽹络延迟(服务调⽤ 的时间)
-
ss(Server Send)服务端处理完毕准备发送到客户端,ss - sr = 服务器上的请求处理时 间
-
cr(Client Reveived)客户端接受到服务端的响应,请求结束。 cr -cs = 请求的总时间
-
相关文章:
Sleuth
Sleuth 一 引言 随着服务的越来越多,对调⽤链的分析会越来越复杂。它们之间的调⽤关系也许如下图: 问题: 1:微服务之间的调⽤错综复杂,⽤户发送的请求经历那些服务,调⽤链不清楚,没有⼀ 个⾃…...
新手必看!!附源码!!STM32通用定时器输出PWM
一、什么是PWM? PWM(脉冲宽度调制)是一种用于控制电子设备的技术。它通过调整信号的脉冲宽度来控制电压的平均值。PWM常用于调节电机速度、控制LED亮度、产生模拟信号等应用。 二、PWM的原理 PWM的基本原理是通过以一定频率产生的脉冲信号࿰…...
静态文件鉴权
静态文件鉴权的解决方案 背景介绍 XX业务系统作为BXX业务系统的孪生姐妹系统,是对BXX受理业务的强力补充系统,他允许操作员拿着IPAD,和客户约定地点上门受理业务。 因一些业务的受理,按照最新的业务规章制度,需…...
计算机视觉与机器学习D1
计算机视觉简介 技术背景 了解人工智能方向、热点 目前人工智能的技术方向有: 1、计算机视觉——计算机视觉(CV)是指机器感知环境的能力;这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。物体检测和人脸识别是其比较成功…...
layui(2.8.18)生成验证码
<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>登入</title><meta name"renderer" content"webkit"><meta http-equiv"X-UA-Compatible" content"IEedge,chrome1&quo…...
MAX/MSP SDK学习05:A_GIMME方法
今天终于将A_GIMME方法部分的描述看懂了,上周因为太赶时间加上这文档很抽象一直没看懂。也就那么一回事,记录一下。 A_GIMME方法用于接收多个参数。 ①内置消息选择器传递多个参数时一定要使用A_GIMME; ②自定义消息选择器传递多个参数时建…...
LangChain: 类似 Flask/FastAPI 之于 Django,LangServe 就是「LangChain 自己的 FastAPI」
原文:LangChain: 类似 Flask/FastAPI 之于 Django,LangServe 就是「LangChain 自己的 FastAPI」 - 知乎 说明:LangServe代替 langchainserver 成为新的langchain 部署工具 官网资料:🦜️🏓 LangServe | &…...
mmdet全教程
官方给的文档一言难尽,网上的教程又没有从大纲到源码的完整解读,计划年后开个系列记录一下...
1992-2021年省市县经过矫正的夜间灯光数据(GNLD、VIIRS)
1992-2021年省市县经过矫正的夜间灯光数据(GNLD、VIIRS) 1、时间:1992-2021年3月,其中1992-2013年为年度数据,2013-2021年3月为月度数据 2、来源:DMSP、VIIRS 3、范围:分区域汇总:…...
Guava的Retryer
Retryer类是Guava库中的一个重试工具类,它提供了一种在调用方法时自动重试的机制。Retryer类中的call()方法用于执行需要重试的方法,如果方法执行失败,则Retryer会根据配置的规则进行重试。Retryer类可以配置重试的次数、重试间隔时间、重试的…...
Docker实践笔记7:构建MySQL 8镜像
使用Docker构建MySQL 8镜像并运行容器 本教程将指导您使用Dockerfile构建和运行一个MySQL 8容器。让我们开始吧! 步骤1:创建Dockerfile 在您的项目根目录下创建一个名为Dockerfile的文件。以下是Dockerfile的示例内容: # 基于最新的MySQL…...
# 学习 Prolog 和 离散逻辑的16个等价公式:一趟有趣的逻辑之旅
Prolog 的语法很奇怪,需要一些时间来适应,所以我花了点时间,想用Prolot来学习和验证离散逻辑的16组等价公式。 1. 双重否定律 (Double Negation Law) A ⇔A 首先,我们来看看双重否定律。在 Prolog 中,我们可以这样验证它: fun1(A,Z):-memb…...
Win11+Modelsim SE-64 10.6d搭建UVM环境
1、添加源文件及tb文件 在目录下建立文件夹,将DUT和Testbench添加进去,文件夹内容如下所示: 2、以《UVM实战》中的例子做简单的示例: 2.1 设计文件 :dut.sv 功能很简单,即将接受到的数据原封不动发送出去…...
LeetCode(32)串联所有单词的子串【滑动窗口】【困难】(含图解)
目录 1.题目2.答案3.提交结果截图4.图解 链接: 串联所有单词的子串 1.题目 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 w…...
【Delphi】使用TWebBrowser执行JavaScript命令传入JSON参数执行出错解决方案
目录 一、问题背景: 二、实际示例: 三、解决方案: 1. Delphi 代码: 2. javaScript代码: 一、问题背景: 在用Delphi开发程序,无论是移动端还是PC端,都可以很方便的使用TWebBrows…...
04 if进阶
elif 否则如果 如果条件没有满足 会继续进入“否则如果”里面判断 只要满足一个条件 条件判断立即终止 chinese 100 if chinese 100:print("我们去迪士尼玩")elif chinese > 90:print("我们去朱雀森林公园")else:print("回家写作业")if n…...
2023全球数字贸易创新大赛9-12
目录 回答评委提问:先说痛点-再说怎样解决 食品安全溯源是否全流程 星火• 链网...
vue3的两个提示[Vue warn]: 关于组件渲染和函数外部使用
1. [Vue warn]: inject() can only be used inside setup() or functional components. 这个消息是提示我们,需要将引入的方法作为一个变量使用。以vue-store为例,如果我们按照如下的方式使用: import UseUserStore from ../../store/module…...
Ubuntu环境下基于libxl库文件使用C++实现对表格的操作
功能 表格不存在则创建后再进行操作创建sheet添加新的工作表在sheet中增加数据设置单元格样式 相关配置 下载地址:libxl选择 LibXL for Linux 4.2.0 i386 x64 armhf aarch64 安装配置 1,使用 tar zxvf 文件名.tar.gz 进行文件解压2,创…...
Sentinel与SpringBoot整合
好的,以下是一个简单的Spring Cloud整合Sentinel的代码示例: 首先,在pom.xml中添加以下依赖: <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel&l…...
AMD Ryzen内存时序终极指南:5分钟掌握ZenTimings免费监控工具
AMD Ryzen内存时序终极指南:5分钟掌握ZenTimings免费监控工具 【免费下载链接】ZenTimings 项目地址: https://gitcode.com/gh_mirrors/ze/ZenTimings 想要彻底释放AMD Ryzen平台的性能潜力吗?内存时序优化是关键!ZenTimings是一款专…...
空间智能技术:3D场景理解与AI性能优化
1. 空间智能技术的前沿探索最近在计算机视觉领域,空间理解能力正成为衡量AI系统成熟度的重要指标。SenseNova-SI作为新一代空间智能解决方案,其核心在于将传统的2D图像识别升级为3D场景理解。这种技术突破使得机器能够像人类一样感知物体之间的空间关系、…...
中级OpenGL教程 004:为几何体注入法线灵魂
✨3D 渲染进阶|为 Geometry 几何体注入法线灵魂:从数据到渲染全流程指南Bilibili 同步视频🎯 核心目标:为几何体补齐法线属性🔍 核心认知:顶点重合≠数据复用📝 Step 1:手写立方体法…...
别再只懂PCA了!用PyTorch从零搭建一个Auto-Encoder,实战图像去噪与数据压缩
别再只懂PCA了!用PyTorch从零搭建Auto-Encoder实战图像去噪与数据压缩 当你的MNIST手写数字被噪声淹没时,当你的高维数据让PCA力不从心时,是时候尝试一种更强大的非线性降维工具了。Auto-Encoder(自编码器)这个看似简单…...
1K预算捡漏华为RH1288V3:手把手教你从开机到装好桌面(附BIOS配置避坑)
1K预算玩转华为RH1288V3:从开机到图形桌面的完整实战指南 当云服务器租用成本逐年攀升时,二手物理服务器正成为技术爱好者性价比最高的实验平台。华为RH1288V3作为经典的1U机架式服务器,目前二手市场价格仅千元左右,却拥有双路E5处…...
KubeBlocks:统一Operator管理多数据库,云原生数据基础设施的乐高积木
1. KubeBlocks:一个Operator管理所有数据库,云原生数据基础设施的“乐高积木”如果你是一名在Kubernetes上管理数据库的工程师,或者正在考虑将应用和数据库都迁移到K8s上,那你一定对“Operator”这个词不陌生。MySQL有MySQL Opera…...
告别混乱!用Allegro 17.4的Class/Subclass高效管理你的PCB设计文件
告别混乱!用Allegro 17.4的Class/Subclass高效管理你的PCB设计文件 在复杂的PCB设计项目中,工程师们常常面临一个共同的挑战:如何在成千上万的元素中保持清晰的视觉管理和高效的操作流程。当设计文件变得庞大,当团队成员需要协同…...
终极魔兽地图转换指南:3分钟解决地图版本兼容性问题
终极魔兽地图转换指南:3分钟解决地图版本兼容性问题 【免费下载链接】w3x2lni 魔兽地图格式转换工具 项目地址: https://gitcode.com/gh_mirrors/w3/w3x2lni 你是否遇到过精心制作的魔兽地图在新版本游戏中无法运行?或者老地图在1.32.8版本中频频…...
实战应用:基于快马平台构建智能植物培养箱的oled状态监控面板
今天想和大家分享一个特别实用的项目——用树莓派Pico和OLED屏搭建智能植物培养箱的状态监控面板。这个项目不仅适合物联网初学者练手,也能直接应用到家庭种植或小型温室场景中。我在InsCode(快马)平台上快速实现了原型开发,整个过程特别顺畅。 硬件选型…...
别再傻傻滚鼠标了!用CodeGlance Pro插件,5分钟搞定VS Code/IDEA代码全局导航
告别无效滚动:用CodeGlance Pro重塑代码导航体验 作为一名长期与复杂代码库打交道的开发者,你是否经历过这样的场景:在重构一个3000行的React组件时,反复滚动屏幕寻找某个关键函数;或者在调试时,需要不断在…...
