当前位置: 首页 > news >正文

分布式服务的链路跟踪 Sleuth Micrometer zipkin OpenTelemetry

由来

在分布式应用开发过程中,一个请求会调用多个应用,会有那种需要知道各个应用之间耗时的想法,这样可以知道一个调用的总时长以及各个组件之间的处理耗时,后面方便定位问题。

理论依据

起源于 google dapper 论文

https://research.google/pubs/pub36356/

具体文档链接

https://storage.googleapis.com/pub-tools-public-publication-data/pdf/36356.pdf

通过论文标题上面的日期,得知在2010 年4月发表

实现组件

Spring Cloud Sleuth

spring 的开发团队在开发了 spring 的产品后,后面又开发了 spring boot 和 spring cloud。

之前写的一篇文章

https://blog.csdn.net/zlpzlpzyd/article/details/132779246

从 maven 仓库上发布的代码时间得知

spring cloud commons 相关的代码在最早是 2015 年,Spring Cloud Sleuth 最早是2016年发布。

但是最近查看Spring Cloud Sleuth官网文档时发现如下内容

Spring Cloud Sleuth 最后的版本是 3.1.x,从这个版本之后移动到 Micrometer Tracing 项目中。

Micrometer Tracing

https://micrometer.io/docs/tracing

意思就是 Spring Cloud Sleuth 从 Spring Cloud 中分离出来单独创建一个项目 Micrometer Tracing,在 2022年11月发布了 1.0.0 GA 版本。

spring 现在属于 vmware,Micrometer 也属于 vmware,属于同一家公司的产品,它们之间的关系类似于异步非阻塞组件 reactor 与 spring webflux 的关系。总之,都是 vmware 的产品。

链路追踪这块通过 Micrometer 制定了一个规范,也就是 SPI,其他的一些厂商可以自己去实现对应的链路跟踪相关功能。

目前针对 Micrometer 规范的实现有两个组件

OpenZipkin Brave

https://github.com/openzipkin/brave

可以引用 zipkin 的相关功能。

在 spring-cloud-dependencies-2022.0.0 中,sleuth 相关依赖被移除。

https://repo.maven.apache.org/maven2/org/springframework/cloud/spring-cloud-dependencies/2022.0.0/spring-cloud-dependencies-2022.0.0.pom

即如果使用了 spring boot 3.x 版本,那就无法使用 Spring Cloud Sleuth了。需要通过 Micrometer 进行适配。


OpenTelemetry

https://opentelemetry.io/

适配方式官网给了具体方式,分为 maven 和 gradle

SPI(Service provider interface)

针对 SPI,日常开发中有很多它的身影。一般的 SPI 都是制定了一个规范,即 java 中的 interface,后面对应的厂商针对这个 interface 编写自己对应的实现。跟设计模式中的策略模式对应。只是 SPI 是针对 java 开发的一个规范,更高层次的规范是论文,比如算法,同一个算法,在不同的编程语言中有不同的实现,但是无论如何,最终执行的结果是一致的。其他方面的规范还有 网络协议 http、tcp、udp 等等。

wiki介绍

https://en.wikipedia.org/wiki/Service_provider_interface

spi 以及对应的实现

jdbc, 对应的驱动实现有,mysql,oracle,postgresql、sqlserver 等等。

servlet,对应的servet 容器实现有,tomcat、undertow、jetty 等等。

slf4j,对应的处理有,logback、apache log4j2 等等。

还有 spring cloud commons 中的定义的接口规范,其中有注册中心,对应的实现有 eureka、consul、nacos 等等。

相关文章:

分布式服务的链路跟踪 Sleuth Micrometer zipkin OpenTelemetry

由来 在分布式应用开发过程中,一个请求会调用多个应用,会有那种需要知道各个应用之间耗时的想法,这样可以知道一个调用的总时长以及各个组件之间的处理耗时,后面方便定位问题。 理论依据 起源于 google dapper 论文 https://re…...

CUDA学习笔记4——自定义设备函数

自定义设备函数 核函数:__global__修饰;在设备中执行;设备函数:__device__修饰;在设备中执行;只能被核函数或其他设备函数调用;主机函数:__host__修饰(可省略&#xff0…...

微前端四:qiankun在开发中遇到的问题

在qiankun开发中会遇到很多问题,上一篇微前端三:qiankun 协作开发和上线部署其实也是在解决一些经常遇到的问题,下面的两点也算是比较经典的了 1、子应用图片路径问题 2、基座是Vue2.0 element ui 配合 子应用 Vue3.0 element plus 导致的样…...

Android DisplayPolicy增加一些动作,打开后台接口

Android DisplayPolicy增加一些动作,打开后台接口 前言一、了解android全局滑动事件的拦截二、修改1.DisplayPolicy.java修改 前言 一些后台接口 界面之类的不方便打开,但是测试需要用到,这里就添加一个10秒内上拉6下,打开一个后…...

基于Linux安装Hive

Hive安装包下载地址 Index of /dist/hive 上传解压 [rootmaster opt]# cd /usr/local/ [rootmaster local]# tar -zxvf /opt/apache-hive-3.1.2-bin.tar.gz重命名及更改权限 mv apache-hive-3.1.2-bin hivechown -R hadoop:hadoop hive配置环境变量 #编辑配置 vi /etc/pro…...

FPGA 图像缩放 1G/2.5G Ethernet PCS/PMA or SGMII实现 UDP 网络视频传输,提供工程和QT上位机源码加技术支持

目录 1、前言版本更新说明免责声明 2、相关方案推荐UDP视频传输--无缩放FPGA图像缩放方案我这里已有的以太网方案 3、设计思路框架视频源选择ADV7611 解码芯片配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择 UDP协议栈UDP视频数据组包U…...

重复控制逆变器的仿真分析研究

摘 要 本次设计主要以重复控制逆变器控制系统设计应用作为研究背景,运用MATLAB/Simulink仿真工具搭建相应的仿真模型。重复控制逆变器控制系统拥有很好的动态特性,运行稳定性高、调速的范围较大,性能可靠等,在实际生产制造中被广…...

WuThreat身份安全云-TVD每日漏洞情报-2023-10-18

漏洞名称:致远 OA XML 外部实体注入漏洞 漏洞级别:高危 漏洞编号:NULL 相关涉及:V5/G6 V6.0及以上全系列版本 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-26027 漏洞名称:XNSOFT NCONVERT 图像文件缓冲区溢出 漏洞级别:中危 漏洞编号:CVE-…...

开启机器人学新时代,《机器人学建模、规划与控制》完美诠释未来

机器人学是未来发展的热点领域之一,而在这个领域中,建模、规划与控制则是必不可少的基础技术。今天作者要向大家推荐一本机器人学领域的经典教材——《机器人学建模、规划与控制》。 这本书由西安交通大学出版社出版,作者是机器人学专业的鼎…...

C#根据ip获取地理位置信息的方法,史上最全

商业收费 百度地图高德地图腾讯地图纯真IP 开源免费 纯真ip免费版 以前可以直接下载,现在获取ip数据库的方式改变了,自行官网查看把,个人或者学术研究,商用追责,商业用途慎用 using System.Collections.Generic; us…...

Git问题汇总

1.取消全局代理 一般报错Failed to connect to github.com port 443 after 21089 ms: Couldn’t connect to server 取消全局代理: git config --global --unset http.proxygit config --global --unset https.proxy#或者 git config --global http.proxy http://…...

【linux 0.11 学习记录】一、环境配置,用Bochs输出hello world

想学习linux,又不知道从哪里下手,体系太大,哪块内容都很多,无奈下选择了linux0.11作为入口,本系列将是学习笔记,希望能坚持下去吧 环境配置 这里使用win10bochs2.7 安装bochs 官网:https://b…...

【LeetCode75】第七十三题 用最少数量的箭引爆气球

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 本题和上一题基本一样,上一题是要我们尽量让区间不重叠,而本题是要我们尽量让区间重叠。 所以我们的做法和上一题…...

航天科技×辰安科技 打造智慧化工园区安全保障平台

近年来,国内化工园区安全事故频发,多起化工园区重特大事故造成了严重人员财产损失的同时,也重创了行业的整体发展。在智能制造和工业互联网的背景下,建设智慧化工园区,使用智能化手段实现安全生产是解决当前化工园区安…...

6-2 分治法求解金块问题

description 老板有一袋金块(共n块,2≤n≤100),两名最优秀的雇员每人可以得到其中的一块,排名第一的得到最重的金块,排名第二的则得到袋子中最轻的金块。 输入一个正整数N(2≤N≤100&#xff…...

A062-防火墙安全配置-配置Iptables防火墙策略

实验步骤: 【教学资源类别】 序号 类别 打勾√ 1 学习资源 √ 2 单兵模式赛题资源 3 分组对抗赛题资源 【教学资源名称】 防火墙安全配置-配置安全设置iptables防火墙策略 【教学资源分类】 一级大类 二级大类 打勾√ 1.安全标准 法律法规 行业标准 安全…...

Java包装类

在Java中不能自己定义基本数据类型对象,为了将基本数据类型视为对象进行处理,并能连接相关方法,Java为每个基本数据类型都提供了【包装类】如int型数值的包装类【Integer】,boolean型数值的包装类【Boolean】,这样就可以把这些基本数据类型转…...

常用字符字符串处理函数

isdigit、isalnum、isalpha、islower、issupper都是C/C 语言中判断字符的一些函数,灵活利用在刷题中可以节省我们的一部分时间。下面c统一为char类型字符 1.isdigit 若参数c为十进制数字0~9,则返回非0值,否则返回0。 其中isxdigital判断是…...

【汇编语言特别篇】DOSBox及常用汇编工具的详细安装教程

文章目录 📋前言一. ⛳️dosbox的介绍、下载和安装1.1 🔔dosbos简介1.2 🔔dosbox的下载1.2.1 👻方式一:官网下载(推荐)1.2.2 👻方式二:网盘安装包 1.3 🔔dosbox的安装1.4 &#x1f5…...

【牛客网刷题(数据结构)】:环形链表的约瑟夫问题

描述 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少? O(n) 示例1 好环形链表的约瑟夫问题是一个经典的问…...

Windows双网卡路由配置实战:内外网高效并行访问指南

1. 为什么需要双网卡并行访问内外网? 在企业办公环境中,我们经常遇到这样的场景:电脑需要同时连接内网处理公司业务系统,又要访问外网查询资料或使用云服务。如果频繁切换网络,不仅效率低下,还可能因为操作…...

不只是CTF:用Kali+Pwntools+GDB-Peda搭建你的第一个漏洞分析实验台

从CTF到实战:构建专业级二进制漏洞分析实验环境 在安全研究领域,CTF比赛中的Pwn挑战只是冰山一角。真正的价值在于将这些技能应用于现实世界的漏洞分析和利用。本文将带你搭建一个专业级的本地漏洞分析实验环境,这个环境不仅能应对CTF题目&a…...

重要提醒:2026年6月PMP考试报名时间已确定

2026年4月2日,中国国际人才交流基金会与PMI(项目管理协会)联合发布官方通知,明确中国大陆地区2026年第二期PMP认证考试将于6月14日正式举办,且本次考试中文报名将分地区、分批次开放,核心报名时间为4月16日…...

手机网站建设:新手指南,一步到位打造完美移动版网站 关键词: 手机网站建设, 移动网站设计, 响应式设计, SEO优化, 用户体验

...

从模型到文档:基于快马ai实现solidworks设计数据自动下游处理

在机械设计领域,SolidWorks作为主流的三维建模工具,经常需要将设计数据转化为下游生产文档。最近我在一个设备开发项目中,就遇到了如何高效处理装配体数据的问题。传统手工整理零件清单、计算材料用量、编写采购单和装配说明的过程既耗时又容…...

颠覆黑苹果配置传统:革新式极简EFI生成方案,突破技术壁垒

颠覆黑苹果配置传统:革新式极简EFI生成方案,突破技术壁垒 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否也曾被黑苹果配…...

Ostrakon-VL扫描终端实战案例:连锁快餐店菜单图像结构化解析

Ostrakon-VL扫描终端实战案例:连锁快餐店菜单图像结构化解析 1. 项目背景与价值 在连锁快餐行业,菜单更新是日常运营的重要环节。传统方式需要人工录入新品信息、核对价格变动,这个过程既耗时又容易出错。我们基于Ostrakon-VL-8B多模态大模…...

深度解析DeepMIMO:毫米波大规模MIMO信道建模的5个架构设计决策

深度解析DeepMIMO:毫米波大规模MIMO信道建模的5个架构设计决策 【免费下载链接】DeepMIMO-matlab DeepMIMO dataset and codes for mmWave and massive MIMO applications 项目地址: https://gitcode.com/gh_mirrors/de/DeepMIMO-matlab 在5G/6G通信系统演进…...

从数学原理到代码实现:手把手推导Transformer时间复杂度公式(附PyTorch示例)

从数学原理到代码实现:手把手推导Transformer时间复杂度公式(附PyTorch示例) 在自然语言处理领域,Transformer架构已经成为事实上的标准模型。但当我们处理长文本序列时,经常会遇到计算资源急剧增加的问题。这背后的核…...

CoPaw持续学习(Continual Learning)实践:让模型记住新知识而不遗忘

CoPaw持续学习(Continual Learning)实践:让模型记住新知识而不遗忘 1. 为什么需要持续学习? 想象一下,你教会了一只小狗坐下和握手的指令。但当你开始教它新的技能"装死"时,它却完全忘记了之前…...