使用篇丨链路追踪(Tracing)很简单:链路拓扑

3D 拓扑不仅包含 PaaS 层的应用、接口流量节点状态与依赖,还可以下钻查看相对应的 IaaS 层进程、实例等资源状态。3D 拓扑为流量与资源建立了一个连接,帮助我们更直观的定位资源瓶颈引发的流量异常问题。
摘要由CSDN通过智能技术生成

最近一年,小玉所在的业务部门发起了轰轰烈烈的微服务化运动,大量业务中台应用被拆分成更细粒度的微服务应用。为了迎接即将到来的双十一大促重保活动,小玉的主管让她在一周内梳理出订单中心的全局关键上下游依赖,提前拉通各方对齐重保方案。这个任务可愁坏了小玉,平时她只与直接上下游业务方打交道,现在要梳理出订单中心完整的依赖路径,头发愁掉了一大把仍然不知道该如何下手。无奈之下,小玉再次求助于万能的小明。

针对小玉的问题,小明提出了一个想法,首先调用链可以追踪一次请求的完整调用路径,但是单条调用链无法反映出所有的调用分支,也无法通过流量大小体现出依赖的强弱,而逐条分析调用链的成本又太高。那么,是否可以通过程序将一批具有相同特征(比如经过某个应用,或者调用了某个接口)的调用链聚合成一颗树,通过分析这棵树的形态与流量,就可以快速梳理出关键节点与依赖路径,而这就是链路拓扑功能的雏形。

如上图所示,入口应用 A 依赖了多个不同深度的下游应用,并且每次调用的路径并不相同。为了梳理出应用 A 的完整调用依赖,可以将多条调用链聚合成一棵树,从根节点到叶子节点的每条路径都代表着一种流量流转路径,而节点的状态反映了流量的特征,比如次数、耗时、错误率等。通过调用链聚合,综合分析端到端流量路径与状态的方法就是链路拓扑。链路拓扑与调用链的关系就好比样本集与离散样本点,前者反映了整体的分布情况,可以有效避免单个样本随机性对评估结果的影响。

01 链路拓扑的经典应用场景

链路拓扑最核心的价值,就是通过分析节点间依赖路径与状态,提供强弱依赖梳理、瓶颈点分析、影响面分析、故障传播链分析等能力,下面我们来深入了解下这些经典用法。

(一)强弱依赖梳理

链路拓扑最典型、最被人熟知的应用场景就是依赖梳理,特别是在一个大型分布式系统中,数以万计的应用间依赖关系复杂到令运维同学怀疑人生。下图展示了 2012 年的淘宝核心链路应用拓扑,密密麻麻如蛛网般的依赖关系已经远远超出了人工梳理的范畴,而这种情况在微服务迅猛发展的当下并不少见。

在复杂业务环境中,不仅需要梳理出依赖关系图,还需要识别哪些是影响核心业务的强依赖,哪些是“无伤大雅”的弱依赖。针对强依赖要投入更多的人力与资源,建立更加完善的保障体系,比如电话告警,联合压测等。针对弱依赖,可以考虑是否能够移除,或者建立次一级的保障措施。

区分强弱依赖的方式主要有以下几种:

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

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

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值