如何追踪微服务调用

       在微服务架构下,由于进行了服务拆分,一次请求往往需要涉及多个服务,每个服务可能是由不同的团队开发,使用了不同的编程语言,还有可能部署在不同的机器上,甚至分布在不同的数据中心。

服务追踪的作用

    在介绍服务追踪原理与实现之前,我们先来看看服务追踪的作用,如下:

  • 优化系统瓶颈:通过记录调用经过的每一条链路上的耗时,我们能快速定位整个系统的瓶颈点在哪里。比如服务A调用服务B接口时发现很慢,肯定是由于某种原因造成的,有可能是运营商网络延迟、网关系统异常、B服务异常,还有可能是缓存或者数据库异常等。通过服务追踪,可以从全局视角上去观察,找出整个系统的瓶颈点所在,然后做出针对性的优化;
  • 优化链路调用:通过服务追踪可以分析调用所经过的路径,然后评估是否合理。比如服务A调用下游多个服务,通过调用链分析,可以评估是否每个依赖都是必要的,是否可以通过业务优化来减少服务依赖。
  • 生成网络拓扑:通过服务追踪系统中记录的链路信息,可以生成一张系统的网络调用拓扑图,它可以反映系统都依赖了哪些服务,以及服务之间的调用关系是什么样的。除此之外,在网络拓扑图上还可以把服务调用的详细信息也标识出来,也能起到服务监控的作用;
  • 透明传输数据:除了服务追踪,业务上经常有一种需求,期望能把一些用户数据,从调用的开始一直往下传递,以便系统中的各个服务都能获取到这个信息。比如业务想做一些A/B测试,这时候就想通过服务追系统,把A/B测试的开关逻辑一直往下传递,经过的每一层服务都能获取到这个开关值,就能够统一进行A/B测试。

服务追踪的由来

       服务追踪系统的鼻祖:2010年谷歌发布的Dapper论文中介绍了谷歌分布式系统追踪的基础原理和架构。它的核心理念就是调用链:通过一个全局唯一ID将分布在各个服务节点上的同一次请求串联起来,从而还原原有的调用关系,可以追踪系统问题、分析调用数据并统计各种系统指标。

       后面诞生的各种服务追踪系统都是基于Dapper衍生出来的,比较有名的有Twitter的Zipkin、阿里的鹰眼、美团的MTrace等。

服务追踪的原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值