当前位置:首页 > 科技  > 软件

一文读懂分布式追踪:过去、现在和未来

来源: 责编: 时间:2023-09-21 20:46:39 220观看
导读作为可观测性体系之一的分布式追踪一直是一个备受争议的话题。作为过去每届 全球知名大会 KubeCon 以及国内各种技术峰会所扯的老牌技术,曾一度被寄予厚望,被认为会彻底改变系统观测认知。然而,五年已经过去了。。。一、

作为可观测性体系之一的分布式追踪一直是一个备受争议的话题。作为过去每届 全球知名大会 KubeCon 以及国内各种技术峰会所扯的老牌技术,曾一度被寄予厚望,被认为会彻底改变系统观测认知。然而,五年已经过去了。。。tSe28资讯网——每日最新资讯28at.com

一、什么是 Distributed Ttracing ?

通常来讲,分布式跟踪是一种在分布式系统和微服务中传播的请求,生成有关这些请求的高质量数据,并使其可供分析的方法。tSe28资讯网——每日最新资讯28at.com

tSe28资讯网——每日最新资讯28at.com

分布式追踪(Distributed Tracing)是一种用于监测分布式系统中请求流程的技术。它可以追踪一个请求在不同的微服务中的执行情况,并将这些信息整合到一个完整的请求链路图中,以便于监测和调试。分布式追踪通常通过在请求的不同阶段插入唯一的标识符(例如 Trace ID 和 Span ID 等)来实现。这些标识符随着请求的传递,会在不同的微服务之间传递,用于标记请求的不同阶段,从而构建完整的请求链路图。tSe28资讯网——每日最新资讯28at.com

分布式跟踪对于监控、调试和优化分布式软件架构至关重要,特别是在动态微服务架构中,因为它有助于团队更快地了解每个微服务的性能。tSe28资讯网——每日最新资讯28at.com

tSe28资讯网——每日最新资讯28at.com

二、分布式追踪的工作原理

分布式跟踪的工作原理是跟踪通过分布式系统的请求流,并在请求通过各种服务和组件时收集有关请求每个步骤的数据。 然后,该数据用于构建请求过程(从初始请求到最终响应)的完整画面。tSe28资讯网——每日最新资讯28at.com

为了实现这一点,分布式跟踪通常依赖于使用唯一标识符,例如跟踪 ID 和跨度 ID,这些标识符附加到每个请求,并在请求遍历不同服务时通过系统传递。 这些标识符允许跟踪系统将请求的每个步骤与整个请求链关联起来,即使它通过不同的服务和组件也是如此。tSe28资讯网——每日最新资讯28at.com

在典型的分布式跟踪系统中,通常由三个主要组件组成:追踪代理(Tracing Agent)、追踪收集器(Tracing Collector)和追踪存储(Tracing Storage)三个主要组件协同工作来跟踪请求tSe28资讯网——每日最新资讯28at.com

1、追踪代理

作为在分布式系统中的每个服务或组件上运行的软件组件,追踪代理主要负责收集有关通过它们的请求的数据。 追踪代理通常将跟踪和跨度 ID 添加到请求标头,并将此信息发送到追踪收集器。tSe28资讯网——每日最新资讯28at.com

2、追踪收集器

追踪收集器组件从跟踪代理接收追踪数据并将其聚合成完整的请求跟踪,然后负责关联不同服务和组件之间的追踪和跨度 ID,以构建请求旅程的完整画面。tSe28资讯网——每日最新资讯28at.com

3、追踪存储

追踪存储组件为存储追踪数据以供以后检索和分析的组件,主要用于诊断问题、优化性能并深入了解分布式系统的整体行为。tSe28资讯网——每日最新资讯28at.com

tSe28资讯网——每日最新资讯28at.com

三、为什么我们的系统需要分布式追踪?

分布式追踪在实际业务场景中通常是独一无二的,因为它专注于请求作为可观察性的单元。在监控和度量平台中,通常以组件(如服务和主机)作为被观察的基本单位。这些平台可以提供有关整个组件随时间的行为的信息,例如在特定时间范围内该服务的健康状况、吞吐量和错误率。tSe28资讯网——每日最新资讯28at.com

相比之下,日志的被观察单位是事件。例如,当代码执行期间出现事件时,可以打印一些信息。这些事件是开发人员在编写代码时主观定义的。然而,日志的挑战在于它们通常是脱节的,每个组件都单独打印自己的日志消息,没有简单的方法将它们连接在一起,以便形成有意义的整体视图。tSe28资讯网——每日最新资讯28at.com

相对地,分布式追踪的被观察单位是单个请求,因为它在多个组件之间遍历。这使得我们能够对整个分布式系统进行查询,并了解在一个复杂、互联的系统中发生了什么。这种可观察性的单元使分布式追踪成为了一种强大的工具,可以帮助开发人员快速诊断问题、优化性能和改进可维护性。tSe28资讯网——每日最新资讯28at.com

通常而言,借助分布式追踪,我们能够实现:tSe28资讯网——每日最新资讯28at.com

1、快速诊断

分布式应用程序通常由多个服务和组件组成,当出现问题时,需要快速定位问题所在,并诊断问题的根本原因。分布式追踪可以帮助开发人员快速诊断问题,因为它提供了详细的请求链路信息,可以直接指出问题所在。tSe28资讯网——每日最新资讯28at.com

2、改进可维护性

分布式追踪可以提供应用程序的全面视图,包括不同服务和组件之间的相互作用。这有助于开发人员更好地理解应用程序的结构和功能,并改进其可维护性。tSe28资讯网——每日最新资讯28at.com

3、理解系统

现代应用程序通常由多个服务和组件组成,这些服务和组件之间的相互作用非常复杂。分布式追踪可以提供完整的请求链路信息,并帮助开发人员了解系统中不同组件之间的相互作用,从而更好地理解系统的行为和性能。tSe28资讯网——每日最新资讯28at.com

tSe28资讯网——每日最新资讯28at.com

一句话总结:tSe28资讯网——每日最新资讯28at.com

“分布式跟踪的基本情况在于,围绕请求的这种方向最接近最终用户的体验。因此,对于我们如何检查和排除分布式架构的故障来说,这也是最直观的。”tSe28资讯网——每日最新资讯28at.com

四、今天,分布式追踪所面临的问题?

在实际的业务场景中,分布式追踪在企业的落地及应用往往因为各种各样的因素导致面临各种问题,具体如下:tSe28资讯网——每日最新资讯28at.com

1、实施艰难

实施分布式追踪可能会面临一些挑战。为了实现分布式追踪,我们需要对代码进行修改和发布。虽然代码修改是实现可观察性的共同要求,但是分布式追踪的挑战在于,为了获得分布式追踪,每个服务或组件都需要进行工具化,否则跟踪将中断。tSe28资讯网——每日最新资讯28at.com

这意味着在实施分布式追踪之前,我们需要对每个服务或组件进行仪器化,以便收集有关请求的跟踪信息,并将其传递给追踪系统。这可能需要一些额外的工作,包括修改现有代码、添加新的跟踪代码和重新部署应用程序。此外,由于每个服务或组件都需要进行仪器化,这可能会导致一些复杂性和维护成本的增加tSe28资讯网——每日最新资讯28at.com

2、价值削弱

尽管分布式跟踪在分布式系统中的可观察性和问题排查方面有很大的优势,但在某些情况下,分布式跟踪的价值可能会被削弱,最大的障碍在于高昂的成本。实施分布式跟踪需要对每个服务和组件进行工具化,这可能会导致额外的成本和复杂性。如果在实施分布式跟踪之前没有考虑好成本和收益,那么分布式跟踪的价值可能会被削弱tSe28资讯网——每日最新资讯28at.com

第二个在于团队的技术储备,团队的技术储备对实施分布式追踪的影响是十分重要的。实施分布式追踪需要对分布式系统进行仪器化,以便收集请求的跟踪信息,并将其传递给追踪系统。这需要对现有代码进行修改,并添加新的跟踪代码,并且需要在不影响系统功能的情况下进行部署。如果团队缺乏实施分布式追踪所需的技术储备,那么实施分布式追踪可能会变得困难。tSe28资讯网——每日最新资讯28at.com

3、复杂的抽样决策

在实施分布式追踪时,抽样决策是一个重要的考虑因素。由于分布式追踪会产生大量的跟踪数据,因此需要采用抽样技术来减少数据量,以避免存储和处理方面的问题。但是,抽样决策的复杂性会影响实施分布式追踪的效果,主要涉及抽样决策的准确性、复杂性以及一致性。tSe28资讯网——每日最新资讯28at.com

抽样决策的准确性直接影响到跟踪数据的质量。如果抽样决策过于简单或不准确,那么可能会忽略重要的请求路径,导致无法正确诊断问题。tSe28资讯网——每日最新资讯28at.com

抽样决策的复杂性也会影响到实施分布式追踪的效果。如果抽样决策过于复杂,那么可能会增加实施分布式追踪的难度,导致实施时间和成本的增加。tSe28资讯网——每日最新资讯28at.com

在分布式系统中,不同服务和组件可能会使用不同的抽样策略,这可能会导致跟踪数据的不一致性。如果不同组件使用不同的抽样策略,那么可能会导致跟踪数据的缺失或重叠,从而影响跟踪数据的质量。tSe28资讯网——每日最新资讯28at.com

tSe28资讯网——每日最新资讯28at.com

当然,除了上面核心的因素外,还有其他可观因素,此处咱不赘述。tSe28资讯网——每日最新资讯28at.com

五、未来,分布式追踪如何发力?

随着分布式系统的普及和应用场景的增多,分布式追踪的未来发展前景非常广阔。分布式追踪将成为分布式系统可观测性的核心工具之一,并且将在以下方面发挥更大的作用:tSe28资讯网——每日最新资讯28at.com

1、自动化:随着人工智能和机器学习技术的发展,分布式追踪将越来越自动化。例如,可以使用机器学习来自动识别异常行为和性能问题,并提供自动化的问题排查和修复建议。tSe28资讯网——每日最新资讯28at.com

2、效率:分布式追踪将成为分布式系统管理的重要工具之一。通过对系统的全面监控和诊断,分布式追踪能够提高系统的效率和稳定性,并减少故障排查的时间和成本。tSe28资讯网——每日最新资讯28at.com

3、安全:分布式追踪将成为安全领域的重要工具之一。通过监控和分析请求的路径和数据流,分布式追踪能够识别潜在的安全漏洞和攻击,并提供及时的响应和修复建议。tSe28资讯网——每日最新资讯28at.com

4、标准化:分布式追踪将越来越标准化,以便不同供应商和厂商的系统可以无缝地集成和互操作。例如,OpenTelemetry 就是一个流行的开放标准,用于实现分布式追踪和度量。tSe28资讯网——每日最新资讯28at.com

总之,分布式追踪的未来发展前景非常广阔。随着技术的进步和需求的增长,分布式追踪将成为分布式系统可观察性的核心工具之一,并在自动化、效率、安全和标准化等方面发挥更大的作用。tSe28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-10890-0.html一文读懂分布式追踪:过去、现在和未来

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Python数据结构:解锁高效编程

下一篇: 面试官:你工作了3年了,这道算法题你都答不出来?

标签:
  • 热门焦点
  • 线程通讯的三种方法!通俗易懂

    线程通讯的三种方法!通俗易懂

    线程通信是指多个线程之间通过某种机制进行协调和交互,例如,线程等待和通知机制就是线程通讯的主要手段之一。 在 Java 中,线程等待和通知的实现手段有以下几种方式:Object 类下
  • 自动化在DevOps中的力量:简化软件开发和交付

    自动化在DevOps中的力量:简化软件开发和交付

    自动化在DevOps中扮演着重要角色,它提升了DevOps的效能。通过自动化工具和方法,DevOps团队可以实现以下目标:消除手动和重复性任务。简化流程。在整个软件开发生命周期中实现更
  • 一篇文章带你了解 CSS 属性选择器

    一篇文章带你了解 CSS 属性选择器

    属性选择器对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。一、了解属性选择器CSS属性选择器提供了一种简单而
  • .NET 程序的 GDI 句柄泄露的再反思

    .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 使用Webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    使用Webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    1、前言在我们使用 Selenium 进行 UI 自动化测试时,常常会因为浏览器驱动与浏览器版本不匹配,而导致自动化测试无法执行,需要手动去下载对应的驱动版本,并替换原有的驱动,可能还
  • 认真聊聊东方甄选:如何告别低垂的果实

    认真聊聊东方甄选:如何告别低垂的果实

    来源:山核桃作者:财经无忌爆火一年后,俞敏洪和他的东方甄选依旧是颇受外界关心的“网红”。7月5日至9日,为期5天的东方甄选“甘肃行”首次在自有App内直播,
  • 小米MIX Fold 3下月亮相:今年唯一无短板的全能折叠屏

    小米MIX Fold 3下月亮相:今年唯一无短板的全能折叠屏

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都有新的进展,其中荣耀、三星都已陆续发布了最新的折叠屏旗舰,尤其号荣耀Magi
  • 华为Mate 60系列用上可变灵动岛:正式版体验将会更出色

    华为Mate 60系列用上可变灵动岛:正式版体验将会更出色

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 北京:科技教育体验基地开始登记

    北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top
Baidu
map