分布式链路追踪,要怎么玩下?

本文介绍了分布式链路追踪的重要性,特别是在微服务架构中的应用。以SkyWalking为例,阐述了其工作原理、架构,以及如何在Kubernetes环境中部署SkyWalking,通过实际操作帮助读者理解链路追踪系统的部署和使用。
摘要由CSDN通过智能技术生成

大家好!我是"无敌码农",最近几个月因为各方面原因公众号没有及时更新,在这里给持续关注本公众号的朋友们表示歉意!2021年我将调整好心态持续给大家输出有价值的技术干货。在接下来的一段时间我所撰写的技术内容将偏向于“云原生”技术相关的内容,主要会涉及Devops、Kubernetes、Service Mesh等内容。而之所以偏向于写这些内容,一方面是自己的兴趣,另一方面也是最近几年以Kubernetes为基础设施的“云原生”技术体系已经成为主流,作为一名研发人员如果只专注于业务代码的研发,而对程序运行的基础环境、架构体系缺乏足够的认识和了解,也是不利于成长和进阶的!

当然,我也会持续分享编程技术相关的干货内容,例如有用的编程技巧、以及程序语言(如Java并发编程、I/O、网络等)相关的技术,但有一点我将尽量减少去写一些市面上已经被写烂、重复N次的技术内容、以及各种鸡汤文!以免浪费大家时间!

好了,废话不多说!本篇文章我将给大家介绍“分布式链路追踪”的内容,对于目前大部分采用微服务架构的公司来说,分布式链路追踪都是必备的,无论它是传统微服务体系亦或是新一代Service Mesh的微服务架构!而具体介绍的内容,本文不是完全讲理论,而是希望从理论到实践,引导大家去操作,因为只有这样才能真正从技术层面有深刻的认识和了解!

分布式链路追踪概述


在具体介绍分布式链路追踪系统之前,我们首先需要理解下什么是链路追踪?在本专栏前面关于监控系统的介绍中可以知道,监控系统的观测数据主要来源于统计指标、日志以及链路追踪这三个方面。而这些数据从类型上又可以划分为两种:请求级别、聚合级别

请求级别的数据主要来源于真实的请求,例如一次HTTP调用、RPC调用等,本文要介绍的链路追踪就是这种类型。而聚合级别则是接口请求的度量指标或者一些参数数据的聚合,如QPS、CPU使用率等数值。日志和统计指标数据既可以是请求级别,也可以是聚合级别,因为它们可能来自源于真实的请求,也可能是系统自身诊断时记录下来的信息。

对于链路追踪来说,它主要的逻辑就是将请求链路的完整行为记录下来,以便可以通过可视化的形式实现链路查询、性能分析、依赖关系、拓扑图等分布式链路追踪相关的功能。如下图所示:

在上图中假设微服务系统中的一次接口调用总共有两个微服务参与,其调用关系分别是A->B->C,其中B服务还与Redis这样的第三方服务产生了调用关系、C服务则还需要调用MySQL数据库服务。所以实际上链路追踪所做的事情就是详细记录A->B(B->Redis)->C(C->MySQL)这条完整链路上的详细调用信息,例如接口响应结果、耗时等。

那么这条调用链路上的数据到底是怎样被记录的呢?接下来我们继续以上面的调用链为例分析下链路追踪信息的具体组成和传递形式,以便进一步理解分布式链路追踪系统的原理和概念。具体逻辑示意图如下:

如上图所示,分布式链路追踪所监控的对象就是一次次调用所产生的链路,图中1-8所示的就是一条完整的链路(Trace),系统会通过唯一的标识(TraceId)对此进行记录。而链路中的每一个依赖调用都会生成一个调用踪迹信息(Sp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值