1.2.4 单链路压测
随着微服务架构的日益盛行,系统中的服务调用关系错综复杂,一个服务可能会被多个服务所依赖,因此,需要以链路的视角来看待服务容量。服务之间的调用链路如图1.3所示。
图1.3 服务之间的调用链路示例
单链路压测的做法是根据业务场景和服务调用情况,划分出局部调用链路后,单独对其进行压测。单链路压测是全链路压测的雏形,用此方法时,我们也要对系统中的数据进行隔离和实施技术改造工作,但由于单链路压测在系统中实施的范围较小,一般都能够在少量业务域内闭环完成,因此单链路压测更容易实施和落地。
不过单链路压测仍然无法评估系统整体的容量情况,这是因为系统整体的容量不是由多条“单链路”的容量简单相加而得到的。服务的容量除了受自身影响,还受依赖服务的影响,而依赖服务又可能有其他调用方,甚至是一些外部服务,这些影响经过累积后,最终的影响范围极难判断。而单链路压测由于缺少外部干扰和资源竞争,容易得出“偏优”的压测结果,不能反映系统的真实承载能力。
因此,我们需要从系统全局视角出发,对整体业务链路和多种业务场景实施全链路压测,这样才能最真实地反映系统的容量情况。由此可见,全链路压测正是在人们的不断实践和探索的过程中逐渐演进出来的。图1.4对这一过程进行了总结,并展示了与全链路压测演进相关的周边技术。
图1.4 全链路压测的演进过程