分布式链路追踪原理详解及SkyWalking、Zipkin介绍

本文介绍了分布式链路追踪的重要性和基本原理,详细讲解了SkyWalking的工作机制,包括SkyWalking的核心模块、数据采集、跨进程context传递、traceId的全局唯一性以及性能影响。此外,还探讨了Zipkin的基本原理。文章对比了SkyWalking和Zipkin在探针性能、可扩展性和调用链路数据分析方面的优缺点,并强调SkyWalking在性能损耗、多语言支持和扩展性方面的优势。
摘要由CSDN通过智能技术生成

背景:追踪调用链路,监控链路性能,排查链路故障

随着微服务架构的流行,一次请求往往需要涉及到多个服务,需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。

单体架构中可以使用 AOP 在调用具体的业务逻辑前后分别打印一下时间即可计算出整体的调用时间,使用 AOP 来 catch 住异常也可知道是哪里的调用导致的异常。

a7c6a3fc656311e26c23665d001d403f.png

 

基本实现原理

一个完整请求链路的追踪ID(traceid)用于查出本次请求调用的所有服务,每一次服务调用的跨度ID(spanid)用来记录调用顺序

ed0d12ec4e9e5780bb29f5560f922b09.png

上游服务parenetid用来记录调用的层级关系

67f2488ee34e506e9e17f86db98beee1.png

调用时间timestamp,把请求发出、接收、处理的时间都记录下来,计算业务处理耗时和网络耗时,然后用可视化界面展示出来每个调用链路,性能,故障

6b62894b4db835b7e5f4b6e604fe00ea.png

97bbd874c258e8860de830389c7116cc.png

还可以记录一些其他信息,比如发起调用服务名称、被调服务名称、返回结果、IP、调用服务的名称等,最后,我们再把相同spanid的信息合成一个大的span块,就完成了一个完整的调用链。

a587384d695d7c18b62ca3c4eab9e9b5.png

 

SkyWalking的原理及架构设计

节点数据的定时采样,采样后将数据定时上报,将其存储到 ES, MySQL 等持久化层,有了数据自然而然可根据数据做可视化分析。

9540eaab2edad233ad3a6de19ac16d82.png

skywalking的工作机制

skywalking的工作机制,需要三块协同。工作原理图大致如下:

  • 一块是skywalking server,负责接收、存储并展示,所以server模块包含一个展示web子模块;
  • 第二块是agent,负责代理微服务并收集需要的信息,转发给server;
  • 第三块便是微服务本身,需要在启动时指定agent,以便生成代理类。

如何通过Zipkin或SKYwalking实现链路追踪

SkyWalking 核心模块介绍:

SkyWalking采用组件式开发,易于扩展,主要组件作用如下:

1. Skywalking Agent:链路数据采集tracing(调用链数据)和metric(指标)信息并上报,上报通过HTTP或者gRPC方式发送数据到Skywalking Collector

2. Skywalking Collector : 链路数据收集器,对agent传过来的tracing和metric数据进行整合分析通过Analysis Core模块处理并落入相关的数据存储中,同时会通过Query Core模块进行二次统计和监控告警

3. Storage

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值