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

分布式链路追踪,一文帮你掌握它!

来源: 责编: 时间:2024-07-09 18:20:45 692观看
导读随着互联网的快速发展,诸如云计算、微服务、开源工具和基于容器交付等技术,使得应用程序在日益复杂的环境中更加分散,因此,追踪请求在分布式系统中链路变得至关重要。那么,什么是分布式追踪?它又是如何工作的呢?本文我们将深

随着互联网的快速发展,诸如云计算、微服务、开源工具和基于容器交付等技术,使得应用程序在日益复杂的环境中更加分散,因此,追踪请求在分布式系统中链路变得至关重要。PhW28资讯网——每日最新资讯28at.com

那么,什么是分布式追踪?它又是如何工作的呢?本文我们将深入进行分析。PhW28资讯网——每日最新资讯28at.com

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

什么是分布式追踪?

分布式追踪(Distributed Tracing)是一种用于监控和诊断分布式应用程序性能的技术。在分布式系统中,服务通常会被拆分成多个微服务,它们可能运行在不同的服务器或容器中,并通过网络相互通信。分布式追踪通过跟踪和记录请求在整个系统中的传播路径和性能数据,帮助开发人员和运维团队分析服务之间的调用关系、排查性能瓶颈和故障。PhW28资讯网——每日最新资讯28at.com

通常,分布式追踪系统会生成唯一标识每个请求的 TraceId,并记录每个服务处理请求的时间、耗时、调用链路等信息。这些数据可以用于生成可视化的调用图,帮助开发者理解系统内部各个服务之间的依赖关系和性能状况。如下图为一个简要的分布式系统追踪网:PhW28资讯网——每日最新资讯28at.com

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

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

为什么需要分布式追踪?

在单体应用程序时代,掌握系统中发生的情况相对简单,然而,分布式系统通常由多个独立的微服务组成,这些服务之间通过网络进行通信,服务的数量和相互依赖关系的增加使得问题的定位和解决变得更加复杂,这些复杂性给内部协作带来了巨大的挑战,同时也大大增加了问题排查的难度和成本。PhW28资讯网——每日最新资讯28at.com

因此,急需一种手段,能够在分布式系统中进行全链路追踪,所以分布式追踪就诞生了。PhW28资讯网——每日最新资讯28at.com

分布式追踪对于监视、调试和优化分布式软件架构(如微服务)至关重要,尤其是在动态微服务架构中,它通过收集和分析与请求触及的每个服务的每次交互的数据来追踪单个请求。PhW28资讯网——每日最新资讯28at.com

分布式追踪还可以帮助团队更快地了解每个微服务的执行情况,这种理解有助于他们快速解决问题,提高客户满意度,确保稳定的收入,并为团队保留创新时间。通过这种方式,企业可以充分利用现代应用程序环境提供的优势,同时最大限度地减少其固有的复杂性也可能带来的挑战。PhW28资讯网——每日最新资讯28at.com

分布式追踪有哪些类型?

分布式追踪系统主要有以下几种类型:PhW28资讯网——每日最新资讯28at.com

(1) 基于采样的追踪PhW28资讯网——每日最新资讯28at.com

采样方式又可以细分三种,其详情如下:PhW28资讯网——每日最新资讯28at.com

  • 全量采样(Full Tracing):对所有请求进行追踪记录。这种方式可以提供最全面的数据,但可能会带来较高的性能开销和存储需求。
  • 随机采样(Random Sampling):随机选择部分请求进行追踪。可以通过设置采样率(如10%)来控制追踪的请求比例,减少开销。
  • 基于策略的采样(Policy-based Sampling):根据特定的规则或策略进行采样,如对特定类型的请求、特定用户或特定时间段的请求进行追踪。

(2) 基于调用链的追踪PhW28资讯网——每日最新资讯28at.com

基于调用链也可以分为两种方式,其详情如下:PhW28资讯网——每日最新资讯28at.com

  • 端到端追踪(End-to-End Tracing):从请求的入口到最终响应的整个过程中,对所有涉及的服务和组件进行追踪。
  • 局部追踪(Local Tracing):只对某个服务或组件的内部调用进行追踪,适用于关注特定服务性能的场景。

(3) 基于日志的追踪PhW28资讯网——每日最新资讯28at.com

  • 日志增强型追踪(Log-enhanced Tracing):在现有的日志系统中添加追踪信息,通过日志来还原请求的调用链路和性能数据。
  • 独立追踪系统(Standalone Tracing System):使用专门的追踪系统和工具来收集和分析追踪数据,如Jaeger、Zipkin等。

(4) 基于事件的追踪PhW28资讯网——每日最新资讯28at.com

  • 同步事件追踪(Synchronous Event Tracing):对同步调用链进行追踪,适用于传统的同步HTTP请求场景。
  • 异步事件追踪(Asynchronous Event Tracing):对异步调用链进行追踪,适用于基于消息队列、异步任务等场景。

分布式追踪的原理

分布式追踪的工作原理涉及多个组件和步骤,我们通过以下 7个主要流程进行分析:PhW28资讯网——每日最新资讯28at.com

(1) 唯一标识PhW28资讯网——每日最新资讯28at.com

在分布式追踪中,一般都会存在两个重要的唯一标识:Trace ID 和 Span ID。PhW28资讯网——每日最新资讯28at.com

  • Trace ID:每个请求被分配一个唯一的 Trace ID,用于标识整个请求的生命周期。
  • Span ID:每个服务在处理请求时,会生成一个 Span ID,用于标识该服务的处理单元,一个 Trace ID下可以包含多个 Span。

(2) 追踪上下文传递PhW28资讯网——每日最新资讯28at.com

当一个请求从一个服务传递到另一个服务时,Trace ID 和 Span ID 会放置在请求头中传递,以确保追踪上下文在整个调用链中保持一致。PhW28资讯网——每日最新资讯28at.com

例如,在 HTTP请求中,追踪信息可以通过特定的 HTTP头(如 X-B3-TraceId, X-B3-SpanId 等)传递。PhW28资讯网——每日最新资讯28at.com

(3) 生成和记录SpanPhW28资讯网——每日最新资讯28at.com

每个服务在接收到请求时,会生成一个 Span,记录该请求的开始时间、结束时间、处理时长、调用的下游服务等信息。Span 还可以包含标签(tags)和日志(logs),用于记录额外的上下文信息,如请求参数、错误信息等。PhW28资讯网——每日最新资讯28at.com

(4) 数据收集和传输PhW28资讯网——每日最新资讯28at.com

每个服务会将生成的 Span 数据发送到集中式追踪收集器(Collector),可以通过多种方式传输数据,如 HTTP、gRPC 等。数据收集器接收到 Span 数据后,会对其进行处理、存储和聚合。PhW28资讯网——每日最新资讯28at.com

(5) 数据存储PhW28资讯网——每日最新资讯28at.com

收集到的追踪数据通常会存储在分布式存储系统中,如 Elasticsearch、Cassandra、Jaeger内置存储等,以支持高效的查询和分析。PhW28资讯网——每日最新资讯28at.com

(66) 数据分析和可视化PhW28资讯网——每日最新资讯28at.com

通过追踪系统的用户界面或可视化工具,用户可以查询和分析追踪数据,生成调用图、时间线图等,直观地展示请求的路径和各个服务的性能。常见的可视化工具包括 Jaeger UI、Zipkin UI 等,它们提供了丰富的过滤、搜索和分析功能。PhW28资讯网——每日最新资讯28at.com

(7) 集成和扩展PhW28资讯网——每日最新资讯28at.com

分布式追踪系统通常提供多种 SDK 和集成工具,支持在不同的编程语言和框架中嵌入追踪代码。还可以与其他监控和日志系统集成,形成统一的可观测性平台,如与 Prometheus、Grafana、ELK 等工具集成。PhW28资讯网——每日最新资讯28at.com

通过上述步骤,分布式追踪系统能够全面地跟踪和分析请求在分布式系统中的传播路径和性能,帮助开发者和运维人员深入理解系统的行为和性能,以下为一张简要的追踪原理图:PhW28资讯网——每日最新资讯28at.com

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

分布式追踪的挑战

尽管分布式追踪为企业提供了许多优势,但在实现和维护过程中面临一些挑战,包括技术复杂性、性能开销、数据管理等方面,以下是一些主要的挑战:PhW28资讯网——每日最新资讯28at.com

(1) 性能开销PhW28资讯网——每日最新资讯28at.com

追踪数据的收集、传输和存储会带来额外的性能开销,特别是在高并发和大规模系统中,这种开销可能会影响系统的整体性能。PhW28资讯网——每日最新资讯28at.com

(2) 数据量大PhW28资讯网——每日最新资讯28at.com

分布式系统中的每个请求可能涉及多个服务,每个服务都会生成追踪数据,导致数据量非常庞大。有效地存储、管理和查询这些数据是一项重大挑战。PhW28资讯网——每日最新资讯28at.com

(3) 全链路追踪的难度PhW28资讯网——每日最新资讯28at.com

确保追踪上下文在整个调用链中传递一致性是一个复杂的问题,尤其是在跨语言、跨平台和跨团队的系统中。任何一个环节出现问题,都会导致追踪数据的不完整或不准确。PhW28资讯网——每日最新资讯28at.com

(4) 采样策略的选择PhW28资讯网——每日最新资讯28at.com

在高流量系统中,不可能对每个请求都进行追踪,需要选择合适的采样策略来平衡追踪数据的代表性和系统的性能开销。制定和调整采样策略需要对系统有深入的了解。PhW28资讯网——每日最新资讯28at.com

(5) 可视化和分析PhW28资讯网——每日最新资讯28at.com

大量的追踪数据需要有效的可视化和分析工具来帮助开发者和运维人员理解系统的行为和性能。设计和实现高效的可视化工具是一个挑战。PhW28资讯网——每日最新资讯28at.com

(6) 数据一致性和可靠性PhW28资讯网——每日最新资讯28at.com

确保追踪数据的准确性和一致性,避免数据丢失或错误,尤其是在系统发生故障或网络不稳定的情况下。PhW28资讯网——每日最新资讯28at.com

(7) 跨团队协作PhW28资讯网——每日最新资讯28at.com

实现和维护分布式追踪需要开发、运维、安全等多个团队的协作。不同团队之间的沟通和协调是一个重要的挑战。PhW28资讯网——每日最新资讯28at.com

(8) 隐私和安全PhW28资讯网——每日最新资讯28at.com

追踪数据可能包含敏感信息,确保数据的隐私和安全是必须的。需要采取适当的措施来保护数据不被未经授权的访问和泄露。PhW28资讯网——每日最新资讯28at.com

(9) 适应多样化技术栈PhW28资讯网——每日最新资讯28at.com

现代分布式系统通常使用多种编程语言、框架和平台。需要支持多样化技术栈的追踪工具和标准,以确保在不同环境中的一致性和兼容性。PhW28资讯网——每日最新资讯28at.com

(10) 成本管理PhW28资讯网——每日最新资讯28at.com

存储和处理大量追踪数据可能带来高昂的成本。需要有效的成本管理策略,如数据压缩、归档和自动删除过期数据等。通过识别和应对这些挑战,可以更好地实现和维护分布式追踪系统,从而充分发挥其在性能监控和故障诊断中的优势。PhW28资讯网——每日最新资讯28at.com

分布式追踪工具

对于分布式追踪工具,市面上主要有三类:自研,开源,商业版。以下是一些常用的分布式追踪工具:PhW28资讯网——每日最新资讯28at.com

(1) ZipkinPhW28资讯网——每日最新资讯28at.com

Zipkin是 Twitter基于 Java语言开发的开源分布式追踪系统,支持多种语言和框架,易于集成。Zipkin提供简单的用户界面,用于查看和分析追踪数据,支持多种存储后端,如 MySQL、Elasticsearch等。PhW28资讯网——每日最新资讯28at.com

(2) SkyWalkingPhW28资讯网——每日最新资讯28at.com

SkyWalking 是一个开源的应用性能监控和分布式追踪系统,由国内 Apache基金会成员吴晟创立。它支持多种语言,包括Java、C#、Go等,能够监控和追踪分布式系统中的调用链路。PhW28资讯网——每日最新资讯28at.com

(3) PinpointPhW28资讯网——每日最新资讯28at.com

Pinpoint是由韩国 Naver开源的分布式追踪系统,专注于 Java和 PHP应用的监控和追踪,它能够详细记录服务的调用链路和性能数据,帮助开发者优化系统性能。PhW28资讯网——每日最新资讯28at.com

Pinpoint 提供直观的界面,方便用户分析和定位问题,支持自定义插件,方便集成到不同的系统中。适用于需要详细调用链路和性能数据的 Java和 PHP应用。PhW28资讯网——每日最新资讯28at.com

(4) CATPhW28资讯网——每日最新资讯28at.com

CAT(Central Application Tracking)是由国内知名互联网公司美团点评开源的分布式追踪和监控系统,专注于应用性能监控和故障排查,它能够实时收集和分析系统中的调用链路和性能数据。PhW28资讯网——每日最新资讯28at.com

CAT能够实时收集和分析系统中的调用链路和性能数据,支持Java、C++、Node.js等多种语言,提供强大的可视化界面,帮助用户深入分析系统性能。适用于需要实时监控和故障排查的分布式系统。PhW28资讯网——每日最新资讯28at.com

(5) 其他PhW28资讯网——每日最新资讯28at.com

另外还有一些国外比较流行(可能在国内不常用)的追踪工具,比如:Jaeger,OpenTelemetry,AWS X-Ray,Azure Application Insights,Google Cloud Trace,Elastic APM等。PhW28资讯网——每日最新资讯28at.com

总结

本文分析了什么是分布式追踪?为什么需要分布式追踪以及分布式追踪如何工作的,其实,分布式追踪就是让错综复杂的分布式系统调用变得透明化和可视化。PhW28资讯网——每日最新资讯28at.com

有了分布式追踪,我们才能更好的掌握服务之间的调用关系,及时监控服务器的各项指标,当出现故障时可以快死定位,因此,分布式追踪是分布式系统中不可或缺的一项技术,在国内的中大型互联网公司,都有一个专门的部门在维护着这样的服务,足以可见其重要性。PhW28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-99903-0.html分布式链路追踪,一文帮你掌握它!

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

上一篇: 五分钟挑战:Python while 循环的七种高效玩法!

下一篇: C# 验证PDF签名有效性的技术探讨

标签:
  • 热门焦点
  • Find N3入网:最高支持16+1TB

    Find N3入网:最高支持16+1TB

    OPPO将于近期登场的Find N3折叠屏目前已经正式入网,型号为PHN110。本次Find N3在外观方面相比前两代有很大的变化,不再是小号的横向折叠屏,而是跟别的厂商一样采用了较为常见的
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 自动化在DevOps中的力量:简化软件开发和交付

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

    自动化在DevOps中扮演着重要角色,它提升了DevOps的效能。通过自动化工具和方法,DevOps团队可以实现以下目标:消除手动和重复性任务。简化流程。在整个软件开发生命周期中实现更
  • 品牌洞察丨服务本地,美团直播成效几何?

    品牌洞察丨服务本地,美团直播成效几何?

    来源:17PR7月11日,美团App首页推荐位出现“美团直播”的固定入口。在直播聚合页面,外卖“神枪手”直播间、美团旅行直播间、美团买菜直播间等均已上线,同时
  • 阿里大调整

    阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的“征求意见版”:1、取消P序列
  • 小米汽车电池信息疑似曝光:容量101kWh,支持800V高压快充

    小米汽车电池信息疑似曝光:容量101kWh,支持800V高压快充

    7月14日消息,今日一名博主在社交媒体发布了一张疑似小米汽车电池信息的照片,显示该电池包正是宁德时代麒麟电池,容量为101kWh,电压为726.7V,可以预测小
  • 消息称小米汽车开始筛选交付中心:需至少120个车位

    消息称小米汽车开始筛选交付中心:需至少120个车位

    IT之家 7 月 7 日消息,日前,有微博简介为“汽车行业从业者、长三角一体化拥护者”的微博用户 @长三角行健者 发文表示,据经销商集团反馈,小米汽车目前
  • iQOO 11S新品发布会

    iQOO 11S新品发布会

    iQOO将在7月4日19:00举行新品发布会,推出杭州亚运会电竞赛事官方用机iQOO 11S。
Top