27、分布式追踪中Span抽象的局限性与新解决方案探索

分布式追踪中Span抽象的局限性与新解决方案探索

1. 引言

在分布式系统中,追踪请求的执行路径和性能是一项关键任务。传统的基于Span的树状追踪方法在很多场景下表现出色,但在面对一些复杂情况时,其局限性也逐渐显现。本文将深入探讨这些局限性,并介绍一些正在出现的新抽象和解决方案。

2. 树状追踪的不足
2.1 图结构而非树结构

在分布式系统中,当端到端的追踪呈现为图结构而非树结构时,传统的树状追踪方法就会遇到问题。例如,当多个RPC请求被批量合并为一个后续的RPC请求时,就会出现子Span有多个父Span的情况。

以下是一个简单的示例,展示了RPC批量处理如何导致Span图的形成:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    X -->|RPC| A
    Y -->|RPC| A
    Z -->|RPC| A
    A -->|Batch RPC| B

在这个示例中,多个传入服务A的请求被合并为一个批量请求,然后发送到服务B。此时,代表从A到B调用的Span的父Span难以确定。

为了解决这个问题,一种常见的方法是选择批量中第一个或最后一个请求作为父请求。但这种折中的树结构并不能正确表示真实的依赖关系,并且批量处理引入的延迟也难以准确记录。

2.2 请求间依赖

当多个追踪之间存在依赖关系时,传统的树状追

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值