前言
之前自己也写过好几篇关于全链路压测的文章或者博客,最近看了infoQ上infoQ-数列科技杨德华的专栏,复盘了下自己以往在全链路压测实施方面的工作,发觉还有很多可以做的更好的地方。就以这篇文章来做个总结,顺带说说我自己实施全链路压测工作方面的一些收获和经验。
18年初:聊聊全链路压测
19年初:再谈全链路压测
20年初:全链路压测探索实践之路
19年双十一备战:全链路压测第一次实践
20年618大促总结:生产全链路压测实践之道
20年双11大促总结:全链路压测落地和演进之路
观点
很多同学问过我关于全链路压测如何实施落地,如何在生产环境实现的技术问题。这里我想借用上面infoQ专栏大佬的一句话:生产全链路压测,表面是一个技术工程,实际上是一个很有难度的组织协调项目。
下面我会从几个方面来谈谈我个人现在对于全链路压测的一些思考和经验总结。
技术
很多同学说起全链路压测,都喜欢深究它的技术细节,这没错。但全链路压测想要成功的在生产环境实施,更多的是考验组织协调能力的一个项目。至于技术层面,能说的有很多,这次我们先聊聊比较核心的一些技术点。
隔离方案
流量隔离
既然我们的前提是在生产环境进行压测,那么无论是趁着业务流量低峰期,还是生产全链路压测常态化,对于压测流量的隔离区分,是一定要首先解决的。如下图所示:
![f8a6dfaf2c12a9023f2d325131f4b24d.png](https://img-blog.csdnimg.cn/img_convert/f8a6dfaf2c12a9023f2d325131f4b24d.png)
目前业内比较常见的方案,有如下两种:
1)中间件改造+流量标透传(业务侵入较多);
2)agent+字节码增强技术(业务侵入较低);
这两种方案的选型,需要基于研发团队的整体技术栈以及业务迭代情况等因素综合考虑。比如我司,采用的是第一种方案。基础架构团队基于spring cloud全家桶二次开发了一套