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 = 请求的总时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/178495.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Django使用】md文档10大模块第5期:Django数据库增删改查和Django视图

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展…

兼顾陪读|自由职业者赴美国加州大学尔湾分校访学

I老师出国访学除了提升自己的科研水平外,主要目标还是以陪伴孩子上学为主。最终我们为其落实了排名还不错的加州大学尔湾分校的职位,这对于已多年脱离科研工作岗位,学术背景非常薄弱的I老师来说相当不易。 I老师背景: 申请类型&a…

str转wstr的三种方法和从网站获取json数据到数据随机提取,返回拼接字符串和动态数组

库的设置 hv库 外部包含目录:…\include\libhv_new\hv; 库目录:…\include\libhv_new\lib\x86\Release; 附加依赖项:hv.lib; //Get请求 获取json数据,然后提取符合 条件的,time值大于自定义变量的值,然后取…

uview-plus u-picker的defaultIndexs修改后无效的问题

uniapp项目中使用了uview-plus组件库,在使用u-picker组件时,发现其默认的选中属性 defaultIndex是一次性的,修改后无法响应,解决办法就是在u-picker源码中修改这个属性的watch,源码位置在uni_modules/uview-plus/components/u-pi…

Uptime Kuma 企业微信群机器人告警

curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa \-H Content-Type: application/json \-d {"msgtype": "text","text": {"content": "hello world"}}企业微信群机器人ke…

[autojs]autojs开关按钮的简单使用

"ui"; ui.layout(<vertical><Switch id"autoService" text"无障碍服务"checked"false"textSize"15sp"/><button text"第二个按钮"/></vertical> ); ui.autoService.on("check"…

分享5款你值得拥有,十分好用的小众软件

​ 今天为大家推荐五款不常见但好用的win10软件&#xff0c;它们都有着各自的特色和优势&#xff0c;相信你会喜欢的。 1.图片处理——Darktable ​ Darktable是一款开源的摄影工作流程应用程序和原始图像开发者。它可以让你管理你的数码底片&#xff0c;通过一个可缩放的光台…

openEuler 22.03 制作openssh9.5p1rpm包

1、yum安装编译依赖的组件 yum install -y rpm-build gcc gcc-c glibc glibc-devel openssl-devel openssl pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel libXt-devel initscripts libXt-devel gtk2-devel lrzsz 虚拟机配置可参考本地yum源 2…

ESP32 碰上内存分配问题

1、背景 看图片 _calloc_r ->_malloc_r ->heap_caps_malloc_default->heap_caps_malloc->multi_heap_malloc->multi_heap_malloc_impl->get_next_block /* Return the next sequential block in the heap.*/ static inline heap_block_t *get_next_block(co…

Web前端—移动Web第四天(vw适配方案、vw和vh的基本使用、综合案例-酷我音乐)

版本说明 当前版本号[20231122]。 版本修改说明20231122初版 目录 文章目录 版本说明目录移动 Web 第四天01-vw适配方案vw和vh基本使用vw布局vh布局混用问题 02-综合案例-酷我音乐准备工作头部布局头部内容搜索区域banner 区域标题公共样式排行榜内容推荐歌单布局推荐歌单内…

rsync配置和守护进程实践

目录 一、rsync概念 1.rsync简介 2.rsync特点 3、增量和全局传输 二、Rsync工作方式 1.准备好rsync备份服务器 2.本地的数据传输模式 3.远程的数据传输模式 4.rsync数据推拉模式 三、实践 1.准备三台虚拟机 2.都安装rsync服务 3.拉取远程文件 3.推送文件 4.rsyn…

使用云 SIEM 解决方案保护IT 基础设施

什么是云 SIEM 基于云的 SIEM 解决方案将 SIEM 功能作为服务提供&#xff0c;云 SIEM 解决方案可保护您的网络;提供威胁情报&#xff0c;提供用于检测、优先处理和解决安全事件的控制台&#xff0c;并帮助您遵守法规要求。云 SIEM 解决方案在管理本地和云环境的网络安全时提供…

java.lang.ArrayIndexOutOfBoundsException: (数组越界异常)

java.lang.ArrayIndexOutOfBoundsException: &#xff08;数组越界异常&#xff09; 如何解决数组越界异常&#xff1f;1.1条件判断1.2循环结构1.3 try-catch&#xff08;异常捕获&#xff09;避免数组越界异常的方法&#xff1a;数组越界异常的调试和排查技巧&#xff1a; 当我…

RAAGR2-Net:一种使用多个空间帧的并行处理的脑肿瘤分割网络

RAAGR2-Net: A brain tumor segmentation network using parallel processing of multiple spatial frames RAAGR2-Net&#xff1a;一种使用多个空间帧的并行处理的脑肿瘤分割网络背景贡献实验N4 bias-field-correction 数据预处理Z-score and re-sampling Z-score归一化&#…

给定一个非严格递增排列的有序数组,删除数组中的重复项

实例要求&#xff1a;1、给定一个非严格递增排列的有序数组 nums &#xff1b;2、原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff1b;3、返回删除后数组的新长度&#xff1b;4、元素的 相对顺序 应该保持 一致 &#xff1b;5、然后返回 nums 中唯一元素的…

C++一个关于delete的幼稚错误

分析 在项目开发中&#xff0c;遇上这么一个错误&#xff1a; 0xc00000fd stack_overflow 这是一个栈溢出的错误&#xff0c;奇怪&#xff0c;我delete怎么会提示这么一个错误呢&#xff1f; 与是问题了群&#xff1a; 总结 这个错误实在是蠢啊&#xff01; 没有细想&am…

含分布式电源的配电网可靠性评估(matlab代码)

1主要内容 该程序参考《基于仿射最小路法的含分布式电源配电网可靠性分析》文献方法&#xff0c;通过概率模型和时序模型分别进行建模&#xff0c;实现基于概率模型最小路法的含分布式电源配电网可靠性评估以及时序模型序贯蒙特卡洛模拟法的含分布式电源配电网可靠性评估。程序…

centos 安装k8s教程(一键安装k8s)

第一步 准备几台机器 第二步 K8s Manager 服务器中添加docker支持 安装教程请查看这个博客 docker 安装详细教程 点我 第三步安装 KuboardSpray 教程在这里 第四步 下载k8s资源包 第五步 安装k8s 点击安装后 显示如下&#xff1a;等待完成

年底了,我劝大家真别轻易离职...

年底了&#xff0c;一些不满现状&#xff0c;被外界的“高薪”“好福利”吸引的人&#xff0c;一般就在这时候毅然决然地跳槽了。 在此展示一套学习笔记 / 面试手册&#xff0c;年后跳槽的朋友可以好好刷一刷&#xff0c;还是挺有必要的&#xff0c;它几乎涵盖了所有的软件测试…

Web自动化测试流程:从入门到精通,帮你成为测试专家!

Web应用程序在今天的软件开发中占据着越来越重要的地位。保证Web应用程序的质量和稳定性是非常必要的&#xff0c;而自动化测试是一种有效的方法。本文将介绍Web自动化测试流程&#xff0c;并提供代码示例。 步骤一&#xff1a;选取测试工具 选择适合自己团队的自动化测试工具…