基础篇丨链路追踪(Tracing)其实很简单

这篇具有很好参考价值的文章主要介绍了基础篇丨链路追踪(Tracing)其实很简单。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、分布式链路追踪的起源

当周末躺在被窝里,点外卖时;双 11 的零点,疯狂提交订单时;假期和基友激情开黑,五杀超神…在这个精彩纷呈的互联网世界里,这些应用背后又隐藏着什么?每一次点击行为在 IT 世界里会流经哪些节点,调用哪些服务,带来哪些变化?这一切庞杂且精密,超出了人力探索的边界,而分布式链路追踪就是追溯请求在 IT 系统间流转路径与状态的一门技术。接下来,让我们通过对分布式链路追踪的来了解这个 IT 世界!

说到分布式链路追踪,就绕不开分布式系统与微服务的兴起。早期 IT 系统非常简单,几乎所有程序都运行在同一个节点,互相之间也没有什么依赖。但随着硬件技术突飞猛进,硬件成本大幅下降,软件复杂度却越来越高。单一系统性能无法满足复杂的数据计算任务,而软件逻辑的复杂性也导致维护成本大幅上升。另外,单节点的可靠性也难以保障,不可避免的会偶尔出现宕机等行为,影响软件的可用性。“性能、可维护性和可用性”这三大因素促使了分布式系统与微服务的诞生。

为了解决上述问题,人们很自然想到:既然一个硬件节点无法很好的运行软件,那能不能够通过多个节点来共同完成?并且为不同节点分派不同任务去提高效率。就好比通过不同角色分工协同的汽车生产流水线,分布式系统与微服务的理念亦是如此,如下图所示。

tracing命令,阿里云,云计算

分布式系统与微服务自诞生就被广泛应用,主要得益于以下优势:

  • 扩展性

分布式系统天然具备“按需扩展”的能力,比如双 11 大促前通过添加机器实现快速水平扩容,大促结束后释放机器,充分利用云计算的分时复用能力,节约成本。利用微服务,还可以实现按需精准扩容,比如登录服务扩容 10 倍,下单服务扩容3倍,最大化的节省资源。

  • 可靠性

分布式系统可以有效抵抗“单点风险”,不会因为某一个节点的故障,影响整体的服务可用性。结合流量调度、离群实例摘除和弹性扩容等技术,甚至可以实现故障自愈。

  • 可维护性

分布式系统可维护性更强,一方面我们将一个复杂服务拆分成多个简单的微服务,每个微服务的逻辑都更加清晰、更易理解。就好比我们写代码,将一个几百行的复杂函数重构成若干个简单函数,代码可读性就会直线上升。另一方面,一些通用的微服务可以被高度复用,无需重复开发和维护,比如你在开发一个电商 APP,可以直接调用第三方提供的支付、物流等服务接口,整体开发和维护效率将大幅提升。

虽然分布式系统与微服务具有非常显著优势,但凡事有利必有弊,它们在有效解决原有问题基础上,也为系统开发和运维带来了新挑战,主要包括以下几点

  • 模糊性

随着系统的分布式程度越来越高,异常表象与根因之间的逻辑联系变得愈加模糊,问题诊断的难度急剧上升。比如 A、B 两个服务共享同一个数据库实例,当 A 服务在压测期间,大量占用数据库的服务端连接和计算资源,会导致 B 服务出现连接超时或响应变慢等问题。如果 B 服务是通过 C 服务间接依赖该数据库实例,问题的定位就会变得更加困难。

  • 不一致

虽然分布式应用从总体上变的更加可靠,但是每一个独立节点的状态却难以保证。导致这种不一致的原因有很多,比如前文提到的单机故障这种预期外的不一致,或者应用 Owner 执行分批发布或流量灰度时导致的预期内行为不一致。这种不一致性导致我们难以确定一个用户请求在系统内的准确执行路径与行为逻辑,可能引发不可预知的逻辑灾难。

  • 去中心化

当你的系统拥有上千个微服务镜像运行在数百台机器实例上,你该如何梳理它们之间的依赖关系,又该如何找到核心业务的关键执行路径?特别是在分布式的场景下,你没有一个中心化的节点(Master)来保存每个服务之间的依赖与调度状态,每个独立节点都在自行其是,无法分辨自己在整个系统中的位置,只能“盲人摸象、管中窥豹”,缺乏全局视图。

分布式系统与微服务带来的新挑战无疑让人头痛,但也带来了新技术的发展契机,科技的发展总是这样循环往复,螺旋式上升。它们带来的新问题,促使了分布式链路追踪的诞生,使你能够有效的观察全局,追踪流量。我们将在下个章节了解分布式链路追踪的诞生历程与核心理念。

二、分布式链路追踪的诞生

为了应对分布式环境下的不一致、模糊性等前文提到的各类问题问题,人们试图通过请求粒度的轨迹追踪与数据透传,实现节点间的确定性关联,分布式链路追踪技术也由此诞生。

里程碑事件:Google Dapper

分布式链路追踪诞生的标志性事件就是 Google Dapper 论文的发表。2010 年 4 月,Benjamin H. Sigelman 等人在 Google Technical Report 上发表了《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》,揭开了分布式链路追踪的技术大幕,开启了一段全新技术浪潮。

Dapper 首先明确了分布式链路追踪的两个目标:任意部署和持续监测。进而给出了三个具体的设计准则:文章来源地址https://www.toymoban.com/news/detail-820711.html

  • 低开销:确保核心系统不会因为额外的性能开销拒绝使用。

到了这里,关于基础篇丨链路追踪(Tracing)其实很简单的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SkyWalking链路追踪中Trace概念以及Trace与span的关系

    在SkyWalking链路追踪中,Trace(追踪)是指一个请求或者一个操作从开始到结束的完整路径。它涵盖了分布式系统中所有相关组件的调用关系和性能信息。 具体来说,Trace包含了一系列的span(跨度),每个span代表了一个组件的调用或操作。一个span会记录下该组件的开始时间、

    2024年02月15日
    浏览(33)
  • Skywalking Kafka Tracing实现

    Skywalking默认场景下,Tracing对于消息队列的发送场景,无法将TraceId传递到下游消费者,但对于微服务场景下,是有大量消息队列的业务场景的,这显然无法满足业务预期。 Skywalking的官方社区中,有用户提出了该场景问题,Skywalking在补充工具包中,提供了对Kafka的tracing支持。

    2024年02月11日
    浏览(27)
  • 可解释性+knowledge tracing

    Post-hoc local explanation-事后可解释性  -解释模型为什么会做出这样的预测或者决策 Lu, Y.; Wang, D.; Meng, Q.; and Chen, P. 2020. Towards interpretable deep learning models for knowledge tracing. In International Conference on Artifificial Intelligence in Edu cation , 185–190. Springer. Lu, Y.; Wang, D.; Chen, P.; Meng, Q.; and Yu,

    2024年02月09日
    浏览(38)
  • rabbitMq怎么查看队列消息-Tracing日志

    Trace 是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。 1、启动Tracing插件 在RabbitMQ中默认是关闭的,需手动开启。此处rabbitMQ是使用docker部署的 开启了插件后,无需重启,rabbitMq管理界面就会出现Tracing项,可新建追踪。 2、新建trace 新建trace时,JSON模

    2024年02月12日
    浏览(35)
  • OpenShift 4 - 可观测性之用 OpenTelemetry+Jaeger 实现 Distributed Tracing

    《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.13 的环境中验证 说明 : 本文使用的测试应用采用的是 “手动 Instrumentation” 方式在应用代码中通过 OpenTelemetry 的 API 获取的跟踪数据。应用代码 https://github.com/rbaumgar/otelcol-demo-app/blob/main/src/main/java/org/acme

    2024年02月15日
    浏览(35)
  • Malware Dev 04 - 隐匿之 ETW(Event Tracing for Windows)Bypass

    如果你是信息安全爱好者,如果你想考一些证书来提升自己的能力,那么欢迎大家来我的 Discord 频道 Northern Bay。邀请链接在这里: 我拥有 OSCP,OSEP,OSWE,OSED,OSCE3,CRTO,CRTP,CRTE,PNPT,eCPPTv2,eCPTXv2,KLCP,eJPT 证书。 所以,我会提供任意证书备考过程中尽可能多的帮助,并

    2024年02月07日
    浏览(29)
  • 没有Unity_光追2008年的书 Ray Tracing From The Ground Up 目录翻译

    之前个人居然完全没有听到过这本书,神作 之前看到的都是什么real-time 3rd,精要,精粹(其实真的都是鸡肋) 拿到手的pdf(从那个最大的同性交友网站)并没有目录,所以记录一下 最后会分享几个写Unity Shader工具(外连接) 看完目录,个人下一个篇幅直接是:AO 光线遮罩

    2023年04月08日
    浏览(31)
  • 【论文笔记】CAT-Net: Compression Artifact Tracing Network for Detection and Localization of Image Splicing

    CAT-Net:用于图像拼接检测和定位的压缩伪迹跟踪网络 发布于WACV2021 代码链接:https://github.com/mjkwon2021/CAT-Net 检测和定位图像拼接已经成为打击恶意伪造的重要手段。局部拼接区域的一个主要挑战是 区分真实和篡改的区域的固有属性,如压缩伪迹 。我们提出了CAT-Net,一个 包含

    2024年02月10日
    浏览(44)
  • 链路追踪详解(三):分布式链路追踪标准的演进

    目录 Google Dapper Twitter Zipkin Uber Jaeger OpenTracing 和 OpenCensus OpenTelemetry 小结 分布式链路追踪是现代云计算和微服务架构中一个关键技术,可以让开发者和运维团队理解和监控服务请求在复杂系统中的完整流转路径。分布式链路追踪技术的发展经历了从早期的专有解决方案到现代

    2024年02月05日
    浏览(41)
  • 链路追踪详解(四):分布式链路追踪的事实标准 OpenTelemetry 概述

    目录 OpenTelemetry 是什么? OpenTelemetry 的起源和目标 OpenTelemetry 主要特点和功能 OpenTelemetry 的核心组件 OpenTelemetry 的工作原理 OpenTelemetry 的特点 OpenTelemetry 的应用场景 小结 OpenTelemetry 是一个为实现可观测性的开源的框架和工具集,用于创建和管理遥测数据,例如 traces,、metric

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包