目的:评估机器扩容量、验证是否可支撑峰值
关键核心点:1)系统、中间件如何配合改造升级 2)构造、隔离压测数据 3)如何发起流量
一、区分压测流量
1、打标方式(压测流量):url、http的<head>中
2、做法:从url/head获取到,放到当前线程的threadlocal,待调用下游时,再取出,放到dobbo的rpcInvocation中,逐层传递。
ps:如中间中断,无法从threadlocal获取。解决方案:1)如用线程池创建,则用TransmittableThreadLocal 2)如用new thread()创建,则用InheritableThreadLocal。具体参考 https://blog.csdn.net/u010833547/article/details/99647118
3、外部接口走mock
4、数据隔离方案
1:1搞影子库浪费,采用逻辑隔离:1)真正要落盘数据,搞影子库,通过路由解决 2)其他中间数据(redis、mq中),加标识,设置较短存活时间
ps1:连接资源的占用:不能在压测结束,未释放。压测试再建立连接,结束快速释放
二、发起流量
压测平台核心任务:1)dump线上数据,脱敏修正再导入 2)落盘影子库 3)根据目标场景,导出相应请求参数文件
到达临近水位,停止施压
压测平台架构:1管理控制台 2压测任务编排 3真正施压