# 《Seckill秒杀系统》第120章:全链路压测核心原则与策略

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★★☆☆☆
  • 本章重点:掌握全链路压测在实际落地过程中的核心原则与实现策略,能够结合自身实际项目思考全链路压测在落地过程中的实践方案。

大家好,我是冰河~~

如果确定要对系统做全链路压测,此时,还不能一上来就开干。经过多年的经验总结,全链路压测有相应的原则和策略,在正式进行全链路压测之前,我们需要根据这些原则和策略,有的放矢的做好全链路压测的准备。

# 一、前言

之前有不少小伙伴反馈说:系统开发完了或者有新功能迭代后,想对系统做一些压力测试,也了解过全链路压测的一些概念,但是在实际项目中却不知道怎么去落地实施,虽然使用了一些小工具对系统进行了压测,但是上线后系统稍微有点并发,还是会出现问题。

其实,很多时候,并不是大家不知道应该测试系统的那些功能,而是不知道怎么去测试。其实,对于压测来说,有着一定的原则和策略,这些原则和策略能够知道我们更好的对系统进行压测。

# 二、本章诉求

介绍全链路压测的核心原则、实施策略和压测目标,从整体上了解到压测工作是有据可依的,在实施过程中有一定的策略方案,并且从总体上认识压测的目标与预期效果。结合自身实际项目思考,将压测的核心原则。实施策略和方案目标灵活应用到自身实际项目中。

# 三、核心原则

对于全链路压测来说,在落地实施的过程中,需要遵循一定的原则,这些原则总体上可以归类如下。


  • 场景一致:使用与生产环境一样的场景进行压测。
  • 环境一致:使用与生产环境一样的系统环境进行压测。
  • 业务一致:使用与生产环境一样的业务量级。
  • 规模一致:使用与生产环境一样的用户规模。
  • 核心链路:使用与生产环境一样的核心链路,业务场景多样,服务依赖度高、调用关系比较复杂。
  • 数据隔离:对基础数据进行预埋点,防止正常数据被压测数据污染。

基于这些原则来说,不少大厂会直接在生产环境做全链路压测。当然,在进行全链路压测之前,需要对系统进行改造。

如果无法做到在生产环境进行压测,也可以考虑搭建一套与生产环境等比的压测环境。这种方式的成本比较高,需要单独搭建压测环境。但是,等比压测环境压测出的结果,也并不一定等同于生产环境,多多少少还是有所差异。

# 四、实施策略

实施全链路压测,除了有一定的原则外,还要遵循一定的策略。从总体上讲,可以将遵循的策略分成三种:瞬间拉满流量、设置初始TPS有序缓慢递进,设置初始TPS快速递进。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码