前言: 对于性能测试来说,全链路压测肯定跑不了的。在昨天上午的【GIAC全球互联网架构大会】上,网易云就进行了全链路压测的议题。对于有性能测试的公司来说,面试往往会被问到什么是全链路压测、如何有效的开展全链路压测等等。我今天也只是高屋建瓴,站在巨人的肩膀上主要讲讲全链路实践的理论问题。对于这个领域我个人也不熟,因为进行全链路压测对于整个公司技术要求还是很高的,没有一定技术沉淀的公司最好不要贸然尝试全链路压测,因为如果没做好可能会把生产环境搞宕机,当然,实在有需求进行全链路压测的,那必须要有生产故障演练。
先说说为什么需要全链路。随着业务的发展,技术架构从原来的单体架构发展到现在的微服务架构, 应用越来越多,给研发人员定位问题带来的困难也越来越大。在单体架构时期,只要查看一个应用的日志,就能大体知道问题出在哪里。但是在微服务架构下,基于前端返回的错误信息,你如何从那么长的应用链路中找到出错的应用?找不到具体的应用,你如何查看错误日志?也许你熟悉业务,可以大概猜测出问题在哪里,但这毕竟存在不确定性。在这种场景下,我们就需要一个服务治理平台,来帮助我们展示业务的全链路调用关系,并能通过某个ID,查询出某个请求在业务平台中流转过程。这里提到的服务治理平台,至少要包含功能有:服务的注册与发现,服务状态的可观测以及流量管理。目前主流的服务治框架有:spring-cloud框架,dubbo框架以及service mesh框架。基于服务治理,我们就可以具体的观察到请求在不同应用之前的流转,再结合统一日志平台,我们就可以快速定位到是哪个微服务出了问题,就能针对性的去做排查,这就是全链路跟踪,也是开展全链路压测的第一个基础。
1、单体架构下的问题定位,直接查看系统的报错日志,简洁明了

2、微服务下这么密集的长链路,你如何去定位呢?

在说清楚了为什么需要全链路后,我们再谈谈不同架构下,对于性能测试的要求有哪些不同。在不同的架构阶段,对性能测试的要求也不一样,简单来说,可以分成4个不同的阶段:
我们通常说的全链路压测,指的是第4个阶段,业务发展到这个阶段时,会面临以下几个棘手的问题:
引入全链路压测试后,有助于我们解决以下几个问题:
不知道大家注意到没,现在落地了全链路压测的公司,基本上都是电商公司,都存在高强度的交易和支付高并发场景。因为全链路平台的搭建是个高成本的活动,所以我们要思考哪些场景合适引入全链路测试,主要有以下几种场景:
既然全链路压测有这么多优点,我们是不是可以大力的推广落地呢?这也是很多面试官喜欢问这个问题的由来。但我们清楚,并不是任何一种技术就能解决所有问题。全链路压测对于整个公司技术有较高的要求,需要公司全体研发人员一起配合,才能有效的落地,否则就是空中楼阁。就像昨天的【GIAC全球互联网架构大会】,里面讲了很多高大上的东西,但是从目前情况来看,这些所讲的内容在我司完全不具备落地条件和能力,所以团队在落地全链路压测时,至少需要考虑以下几个问题:
通过以上问题,可以看出,落地全链路测试,涉及到研发的各个部门,并不是测试人员单方面的事。当我们想要落地全链路时,我们需要考虑清楚团队是否有足够的底层技术来支持。

面对全链路线上压测,希望你理性分析它的实施成本和上层的支持力度。切忌在没有必要的航线上不断试错。如果你的企业确实需要做全链路压测,那就要把改造的细节列清楚,并计算出成本。不盲从,不夸大,不缩小,做真正有价值的事情。毕竟全链路压测本身就是一项综合技术要求很高的实践场景,需要整体IT团队在积累了各种前期的技术储备后,共同协作完成,并不是某个部门或者团队的事,需要有人整体的协调和统筹才能真正落地。作为测试人员,我们要了解全链路压测是在做什么,并且能大体知道是怎么做的,需要用到哪些技术能力,再结合团队的具体技术能力,分步骤、有选择的去推动和落地。而不是一味的追求直接就上全链路压测,同时,这是一项更依赖集体的活动,哪怕你技能再强,也不可能一个人完成这项工程,需要分清个人能力和公司平台哪个更重要。对于面试过程中的问题,我们可以针对的讲讲实现全链路的前因后果,理清楚技术栈和实现思路即可。
目前,全链路压测所涉及到技术能力,经过大厂这几年的探索,基本上都形成了较为稳定和成熟的方案,有需要的同学可以参考,具体的落地细节我想这还得自己实践,虽然阿里、京东、字节、美团、饿了么、滴滴、陌陌等大厂的技术文章里,都频繁提到全链路压测在企业内部的落地,但是一旦涉及到具体的落地细节,他们却都跟约好了一样三缄其口。
1、哈罗全链路压测介绍:
https://segmentfault.com/a/1190000041751358
2、滴滴全链路路压测介绍:
https://blog.csdn.net/g6u8w7p06dco99fq3/article/details/79119269
3、字节全链路压测介绍:
https://mp.weixin.qq.com/s/k_nwjNEvMk-IteaKIzrlxA
4、饿了么全链路压测介绍:
https://zhuanlan.zhihu.com/p/30511486
5、有赞全链路压测介绍:
https://mp.weixin.qq.com/s/0a-Sd_fCkE2mDFzNpKxf7A
6、全链路压测经验谈 :
https://www.sohu.com/a/298660565_472869?sec=wd
7、全链路压测的大概思路:
https://www.wangt.cc//2021/11/全链路压测思路/
https://www.cnblogs.com/zgq123456/p/10797494.html
8、极客时间-高楼:
https://zhuanlan.zhihu.com/p/423423660