分布式链路追踪Micrometer Tracing和ZipKin基础入门与实践

news2024/10/6 8:24:45

【1】概述

在分布式与微服务场景下,我们需要解决如下问题:

  • 在大规模分布式与微服务集群下,如何实时观测系统的整体调用链路情况。

  • 在大规模分布式与微服务集群下,如何快速发现并定位到问题。

  • 在大规模分布式与微服务集群下,如何尽可能精确的判断故障对系统的影响范围与影响程度。

  • 在大规模分布式与微服务集群下,如何尽可能精确的梳理出服务之间的依赖关系,并判断出服务之间的依赖关系是否合理。

  • 在大规模分布式与微服务集群下,如何尽可能精确的分析整个系统调用链路的性能与瓶颈点。

  • 在大规模分布式与微服务集群下,如何尽可能精确的分析系统的存储瓶颈与容量规划。

上述问题就是我们的落地议题答案:

分布式链路追踪技术要解决的问题,分布式链路追踪(Distributed Tracing),就是将一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示。比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。

Micrometer Tracing 是Spring Cloud Sleuth的升级替代。https://micrometer.io/docs/tracing

在这里插入图片描述

Sleuth官网地址:https://spring.io/projects/spring-cloud-sleuth#overview
SleuthGitHub地址:https://github.com/spring-cloud/spring-cloud-sleuth

Spring Cloud Sleuth(micrometer)提供了一套完整的分布式链路追踪(Distributed Tracing)解决方案且兼容支持了zipkin展现。

将一次分布式请求还原成调用链路,进行日志记录和性能监控,并将一次分布式请求的调用情况集中web展示。

【2】分布式链路追踪原理

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

在这里插入图片描述

步骤说明
1第一个节点:Span ID = A,Parent ID = null,Service 1 接收到请求。
2第二个节点:Span ID = B,Parent ID= A,Service 1 发送请求到 Service 2 返回响应给Service 1 的过程。
3第三个节点:Span ID = C,Parent ID= B,Service 2 的 中间解决过程。
4第四个节点:Span ID = D,Parent ID= C,Service 2 发送请求到 Service 3 返回响应给Service 2 的过程。
5第五个节点:Span ID = E,Parent ID= D,Service 3 的中间解决过程。
6第六个节点:Span ID = F,Parent ID= C,Service 3 发送请求到 Service 4 返回响应给 Service 3 的过程。
7第七个节点:Span ID = G,Parent ID= F,Service 4 的中间解决过程。
8通过 Parent ID 就可找到父节点,整个链路即可以进行跟踪追溯了。

【3】Zipkin

官网地址:https://zipkin.io/
在这里插入图片描述

① 是什么

Zipkin是一种分布式链路跟踪系统图形化的工具,Zipkin 是 Twitter 开源的分布式跟踪系统,能够收集微服务运行过程中的实时调用链路信息,并能够将这些调用链路信息展示到Web图形化界面上供开发人员分析,开发人员能够从ZipKin中分析出调用链路中的性能瓶颈,识别出存在问题的应用程序,进而定位问题和解决问题。

② 下载安装

如下所示,有几种方式进行安装/运行,这里我们下载jar进行运行。

在这里插入图片描述

java -jar zipkin-server-3.0.0-rc0-exec.jar

在这里插入图片描述

浏览器访问:http://localhost:9411/zipkin/

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 中的参数校验:构建健壮应用的基石

前言 在开发Web应用时,处理用户输入是不可避免的一环。然而,用户输入往往充满不确定性,可能是格式不正确、类型不匹配,甚至包含恶意内容。为了确保应用的稳定性和安全性,对输入参数进行有效校验显得尤为重要。Spring …

Vue3 特点以及优势-源码解剖

Vue3 特点以及优势-Vue3.4源码解剖 Vue3 特点以及优势 1.声明式框架 命令式和声明式区别 早在 JQ 的时代编写的代码都是命令式的,命令式框架重要特点就是关注过程声明式框架更加关注结果。命令式的代码封装到了 Vuejs 中,过程靠 vuejs 来实现 声明式代…

微软与OpenAI/谷歌与三星的AI交易受欧盟重点关注

近日,欧盟委员会主管竞争事务的副主席玛格丽特维斯塔格(Margrethe Vestager)在一次演讲中透露,欧盟反垄断监管机构将就微软与OpenAI的合作,以及谷歌与三星达成的AI协议寻求更多第三方意见。这意味着微软与 OpenAI、谷歌与三星的 AI 交易及合作…

数据库操作-DML和DQL

DML DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。 添加数据(INSERT) 1.指定字段添加数据: insert into 表名 ( 字段名 1, 字段名 2) values ( 值 1, 值 2); 2…

守望先锋2卡顿/丢包?守望先锋2延迟高怎么降低

守望先锋2/ow2新赛季已经上线,想必很多玩家都已经进入游戏体验过,新的主题英雄和Push地图和改版后的斗兽场玻璃墙。不过虽然新赛季内容满满,有趣又好玩,但是架不住服务器拉跨,近期也有不少玩家吐槽新赛季问题频发&…

短信接口平台的核心功能有哪些?如何使用?

短信接口平台怎么有效集成?选择短信接口平台的技巧? 短信接口平台作为一种重要的通信工具,广泛应用于各种企业和组织。通过短信接口平台,企业能够高效、便捷地与客户进行互动和沟通。AoKSend将详细介绍短信接口平台的核心功能。 …

【博主推荐】HTML5实现简洁好看的个人简历网页模板源码

文章目录 1.设计来源1.1 主界面1.2 关于我界面1.3 工作经验界面1.4 学习教育界面1.5 个人技能界面1.6 专业特长界面1.7 朋友评价界面1.8 获奖情况界面1.9 联系我界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发&#xff0c…

大模型技术在辅助学习中的应用

大模型技术在辅助学习中的应用场景非常广泛,以下是一些典型示例。大模型技术在辅助学习中具有广阔的应用前景,可以为学生提供更加个性化、智能化和高效的学习体验。随着大模型技术的不断发展,我们可以期待在未来看到更多创新应用。北京木奇移…

bmob Harmony鸿蒙快速开发搜索功能

搜索功能是很多应用都需要的功能。在很多平台上,要开发一个兼容性较好的搜索功能都还是需要添加比较多的视图代码的。 为了解决这个问题,鸿蒙ArkUI提供了一个快速添加搜索功能的视图组件给我们,结合Bmob Harmony鸿蒙SDK的搜索能力&#xff0…

Spark2.0

目录 10.3 Spark运行架构 10.3.1 基本概念 10.3.2 架构设计 ​编辑 10.3.3 Spark运行基本流程 Spark运行架构特点 10.3 Spark运行架构 10.3.1 基本概念 RDD :是 Resillient Distributed Dataset (弹性分布式数据集)的简称,是分…

前端开发中的常见问题及解决方法

前端开发是一个充满挑战和乐趣的领域。然而,在开发过程中,开发者常常会遇到各种各样的问题。本文将介绍一些前端开发中常用或者经常遇到的问题,并提供相应的解决方法,帮助你提高开发效率和解决问题的能力。 一. 页面布局问题 问题…

git 禁止dev合并到任何其他分支

创建 pre-merge-commit 钩子 导航到 Git 仓库的钩子目录: cd /path/to/your/repo/.git/hooks创建或编辑 pre-merge-commit 钩子: 也可以通过指令创建 nano pre-merge-commit在钩子文件中添加以下代码: #!/bin/sh# 获取当前分支名称 curr…

Audition 2024 for Mac/Win:音频处理的极致艺术

Adobe Audition 2024是一款面向Mac和Windows用户的顶级音频录制和编辑软件,以其卓越的性能和丰富的功能,满足了专业音乐制作、音频后期处理、播客录制等多个领域的需求。 Audition 2024提供了全面的音频处理功能,包括高效的录音、混音、编辑…

精密仪器中微型丝杆延长使用寿命的技巧!

微型丝杆是现代小型化机械中常用的传动元件,其具有高精度、高刚性、高效率等特点。被广泛应用在各种精密仪器当中,如:激光打印机、光学仪器、显微镜、高精度相机、医疗器械、智能家居、机器人等设备,可见在制造业中有无可替代的作…

CredSSP 远程执行代码漏洞(CVE-2018-0886)漏洞处理过程

Microsoft Windows CredSSP 远程执行代码漏洞(CVE-2018-0886)【原理扫描】 此漏洞被定级为高危漏洞,因此需要修复处理! 【处理建议一】 凭据分配修改Oracle修正 运行 --> gpedit.msc --> 本地组策略编辑器 计算机配置 --> 管理模板 --> …

动手RAG: ocr调研

对于rag应用来说,文档是第一步,对于部分扫描件的文件来讲,主要就需要OCR. OCR tesseractppocrmmocr OCR包含几类, 自然场景中的文字识别,文档中的文字识别pipeline: 文本检测,文本识别,文…

巴比达内网穿透:深度剖析其在解决远程连接挑战中的技术优势

在信息技术日新月异的今天,远程协作与管理的需求日益增长,但内网环境的隔离性一直是横亘在高效远程操作面前的一道坎。本文将深入探讨一款专为打破此壁垒而生的工具——巴比达内网穿透,如何以其技术创新和高效性能,成为解决远程连…

每日一题——Python实现蓝桥杯 单词分析(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码分析 时间复杂度分析 空间复杂度分析 总结 我要更强 方法一&#x…

左值右值, 左值引用右值引用,完美转发

一. 左值和右值 左值: 可以取地址的对象 右值: 不可以取地址的对象 double x1.0, y 2.0; 1; // 字面量, 不可取地址, 是右值 x y; // 表达式返回值, 不可取地址, 是右值 max(x, y); // 传值返回函数的返回值 (非引用返回)总结就是: 根据是否可以取地址来区分是左值还…

Pandas实战秘籍:轻松驾驭重复值与异常值的处理艺术,让数据清洗更高效!

1.导包 import numpy as np import pandas as pd2.删除重复行 def make_df(indexs,columns):data [[str(j)str(i) for j in columns] for i in indexs]df pd.DataFrame(datadata,indexindexs,columnscolumns)return df使用 duplicated() 函数检测重复的行 返回元素为布尔类…