分布式系统中的分布式链路追踪与分布式调用链路

天翼云开发者社区
• 阅读 103

本文分享自天翼云开发者社区《分布式系统中的分布式链路追踪与分布式调用链路》,作者:c****w

在分布式系统中,由于服务间的调用关系复杂,需要实现分布式链路追踪来跟踪请求在各个服务中的调用路径和时间消耗。这对问题排查和性能监控都很重要。

常用的分布式链路追踪实现有基于日志的和基于分布式追踪系统的两种方式:

基于日志的实现方式是在每个服务中记录自己的请求id和上下文信息,并在日志中打印出来。这样可以通过聚合各个服务的日志来还原整个请求链路。

基于分布式追踪系统的实现方式是: 使用开源Tracing系统,比如Zipkin。每个服务都需要集成Tracing客户端库。 客户端在发起请求时,生成一个唯/一的TraceId并传递给下游服务。 每个服务接收到请求都需要记录Span数据,包括操作名、时间戳等。 所有Span数据通过消息队列发送给Tracing系统。 Tracing系统将收集的Span通过时间排序后重构成一条链路。

这里继续扩展分布式链路追踪的几点内容: 1.数据收集方式除了日志和Tracing系统外,还可以采用专用Agent向中心服务器报告追踪数据。 2.链路数据展示可以通过可视化追踪系统实现,支持过滤、聚合查询等功能寻找性能瓶颈。 3.链路数据可以进一步用于异常监控,比如追踪错误请求的整个调用链路排查问题。 4.链路数据也可以用于应用性能监控(APM),追踪每个服务的响应时间分布找出慢服务。 5.分布式追踪需要考虑大量分布式调用产生的高并发压力,选择性能优异的追踪系统实现。 6.链路数据可以通过机器学习算法进行分析,自动学习出正常调用模式,找出异常调用路径。 7.链路ID的传播需要考虑多种语言和协议的兼容,保证ID的上下文传递。 8.链路数据的存储和查询也是一个重要问题,需要考虑大规模分布式追踪数据的处理能力。 9.链路采样是一种常用优化手段,只对部分请求进行详细追踪,降低系统压力。

以上内容给出了分布式链路追踪在数据收集、展示、应用等方面的一些进一步思路,对系统设计和优化很有帮助。

点赞
收藏
评论区
推荐文章
Johnny21 Johnny21
3年前
服务追踪工具 SkyWorking 搭建使用
服务追踪工具SkyWorking搭建使用是用于对微服务,CloudNative,容器等提供应用性能监控和分布式调用链追踪的工具截图环境SkyWalking5.0.0beat2MacOSElasticSearch5.6.
Stella981 Stella981
2年前
Dubbo日志链路追踪TraceId选型
!mark(https://oscimg.oschina.net/oscnet/updd1ad9729fb807ee6dc473bdc283b1a4481.png)一、目的开发排查系统问题用得最多的手段就是查看系统日志,但是在分布式环境下使用日志定位问题还是比较麻烦,需要借助全链路追踪ID把上下文串联起来,本文主要分享基于
Stella981 Stella981
2年前
Opentracing + Uber Jaeger 全链路灰度调用链,Nepxion Discovery
当网关和服务在实施全链路分布式灰度发布和路由时候,我们需要一款追踪系统来监控网关和服务走的是哪个灰度组,哪个灰度版本,哪个灰度区域,甚至监控从HttpHeader头部全程传递的灰度规则和路由策略。这个功能意义在于:不仅可以监控全链路中基本的调用信息,也可以监控额外的灰度信息,有助于我们判断灰度发布和路由是否执行准确,一旦有问题,也可以快速定位
Stella981 Stella981
2年前
Dubbo + Zipkin + Brave实现全链路追踪
DubboZipkinBrave实现全链路追踪最近写了一个链路追踪Demo分享下,实现了链路追踪过程中数据的记录,还有能扩展的地方,后期再继续补充。原理参考上面文章《Dubbo链路追踪——生成全局ID(traceId)》(https://my.oschina.net/Luc
Wesley13 Wesley13
2年前
APM监控
一,基础知识储备分布式跟踪的目标一个分布式系统由若干分布式服务构成,每一个请求会经过多个业务系统并留下足迹,但是这些分散的数据对于问题排查,或是流程优化都很有限,要能做到追踪每个请求的完整链路调用,收集链路调用上每个服务的性能数据,计算性能数据和比对性能指标(SLA),甚至能够再反馈到服务治理中,那么这就是分布式跟踪的目标。分布式跟踪的目的
Stella981 Stella981
2年前
SOFAStack 活动回顾整理集合(含视频回顾)
SOFAStack是蚂蚁金服完全自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,如微服务研发框架、RPC框架、服务注册中心、分布式定时任务、限流/熔断框架、动态配置推送、分布式链路追踪、Metrics监控度量、分布式高可用消息队列、分布式事务框架和分布式数据库代理层等。SOFAStack:https://gitee.com/
Stella981 Stella981
2年前
Spring Boot + Spring Cloud 构建微服务系统(八):分布式链路追踪(Sleuth、Zipkin)
技术背景在微服务架构中,随着业务发展,系统拆分导致系统调用链路愈发复杂,一个看似简单的前端请求可能最终需要调用很多次后端服务才能完成,那么当整个请求出现问题时,我们很难得知到底是哪个服务出了问题导致的,这时就需要解决一个问题,如何快速定位服务故障点,于是,分布式系统调用链追踪技术就此诞生了。ZipKinZipkin是一个
Easter79 Easter79
2年前
SpringCloud系列:利用SpringCloud Sleuth和Zipkin实现分布式服务调用链跟踪(一)
一、概述在单体应用时代,接口缓慢能够被迅速定位和发现,而随着分布式微服务的流行,服务之间的调用关系越来越复杂,错中复杂的调用关系使得我们想找到某一个接口的效率缓慢变得非常困难,而分布式服务调用跟踪组件就解决了这个问题。Sleuth是SprinCloud在分布式系统中提供追踪解决方案,zipkin是基于GoogleDapper的分布式链路调用监
Stella981 Stella981
2年前
SOFATracer 在亿通国际可观察性下的落地与实践
陈晨:GithubID:chenmudu ,SOFATracerCommitter,专注于基础服务和可观察性方向。SOFATracer是蚂蚁集团开源的基于OpenTracing规范的分布式链路跟踪系统组件,其核心理念就是通过一个全局的TraceId将分布在各个服务节点上的同一次请求串联起来。通过统一的TraceId将调用链
Stella981 Stella981
2年前
Spring Cloud Sleuth 分布式服务追踪
随着业务的发展,系统规模也会变得越来越大,各微服务间的调用关系也变得越来越错综复杂。通常一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的请求结果,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一条复杂的分布式服务调用链路,在每条链路中任何一个依赖服务出现延迟过高或错误的时候都有可能引起请求最后的失败。这时
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
494
粉丝
8
获赞
37