前言
在微服务架构中,一次请求往往涉及到多个模块,多个中间件,多台机器的相互协作才能完成。这一系列调用请求中,有些是串行的,有些是并行的,那么如何确定这个请求背后调用了哪些应用,哪些模块,哪些节点及调用的先后顺序?如何定位每个模块的性能问题?本文将为你揭晓答案。
本文将会从以下几个方面来阐述
- 分布式追踪系统原理及作用
- SkyWalking的原理及架构设计
- 我司在分布式调用链上的实践
分布式追踪系统的原理及作用
如何衡量一个接口的性能好坏,一般我们至少会关注以下三个指标
- 接口的 RT 你怎么知道?
- 是否有异常响应?
- 主要慢在哪里?
单体架构
在初期,公司刚起步的时候,可能多会采用如下单体架构,对于单体架构我们该用什么方式来计算以上三个指标呢?
最容易想到的显然是用 AOP
使用 AOP 在调用具体的业务逻辑前后分别打印一下时间即可计算出整体的调用时间,使用 AOP 来 catch 住异常也可知道是哪里的调用导致的异常。
微服务架构
在单体架构中由于所有的服务,组件都在一台机器上,所以相对来