有赞全链路压测实战
如果无法正常显示,请先停止浏览器的去广告插件。
1. 有赞全链路压测实战
张驰
2. 大纲
e
t
s
e
T
o
rH
e
m
01
03
目录
02
e
全链路压测是什么 m
o
H
What
r
e
t
s
e
T 为什么要做
整体设计 具体实施
Framework
04
Why
e
t
s
e
T
Implement
o
rH
e
m
3. 是什么
o
rH
e
t
术语
s
e
T
e
m
基于实际的线上业务
场景和真实环境,模
拟海量的用户请求和
数据对整个业务链进
行压力测试
e
t
s
e
T
o
H
r
e
m
一句话
让大促提前发生
e
t
s
e
T
o
rH
e
m
4. 为什么
e
t
s
e
T
o
rH
e
m
综
系
路
杂
心
依
赖
以偏概
全
链
e
t
s
e
T
统
复
核
错
o
H
r
e
m
e
t
环境差异
s
e
T
大
o
rH
e
m
5. 整体设计
e
场景构建
数据构造
m
o
H
r
e
t
s
e
T
流量下发
e
t
s
e
T
o
H
r
流量识别
数据隔离
e
m
e
t
s
e
T
o
rH
e
m
6. 压测流量识别
Dubbo
HTTP
e
t
s
e
T
e
m
Header Name:You-Zan Attachments:You-Zan
Header Value:{"youzan": Attachments Value:
o
rH
true}
NSQ
e
t
s
e
T
o
H
r
e
m
{“youzan": true}
Wagon
jsonExtHeader PUBEXT
Key:youzan;Value:true {"youzan": true}
e
t
s
e
T
o
rH
e
m
7. 压测数据隔离
e
Proxy 访问隔离
m
o
H
r
e
t
s
e
T
客户端 SDK 隔离
数据偏移隔离
e
t
s
e
T
o
H
r
e
m
e
t
s
e
T
o
rH
e
m
8. 压测实施流程
• 压测计划制定
o
rH
e
m
• 铺底数据准备
e
t
s
e
T • 请求数据构造
• 压测脚本准备
• 压测执行
• 压测报告生成
e
t
s
e
T
o
H
r
e
m
e
t
s
e
T
o
rH
e
m
9. 压测计划制定
e
t
s
e
T
o
rH
压测场景
e
m
e
t
s
e
T
压测链路
o
H
r
e
m
压测漏斗
e
t
s
e
T
o
rH
压测目标
e
m
10. 铺底数据准备
• 数据导入
o
rH
e
t
s
• e 数据清洗
T
e
m
• 数据导出
• 自动化数据准备
e
t
s
e
T
o
H
r
e
m
e
t
s
e
T
o
rH
e
m
11. 工具选型
e
t
s
e
T
o
rH
e
m
支持分
布式
e
t
s
e
T
测试资
源管理
提供
GUI
o
H
r
e
m
压测脚
本参数
化
e
t
s
e
T
o
rH
e
m
12. 请求数据构造
e
m
Gatling Json feeders
e
t
s
e
T
o
rH
MapReduce 写入
拉取 HDFS 数据
e
t
s
e
T
o
H
r
e
m
e
t
s
e
T
o
rH
e
m
13. 压测脚本准备
压测请求和参数梳理
e
m
具体接口和接口参数
e
t
s
e
T
o
rH
流量漏斗转化
流量转化率
多场景配比
多场景同时压测
e
t
s
e
T
o
H
r
e
m
e
t
s
e
T
o
rH
e
m
14. 压测执行
e
t
s
e
T
o
rH
e
m
e
t
s
e
T
o
H
r
e
m
小流量下发验证
值班及问题记录
e
t
s
e
T
阶段性爬坡压测执行
o
rH
e
m
15. 压测平台
测试脚本管理
o
rH
e
m
数据集管理
e
t
s
e
T
测试任务管理
压测注入器
压测报告生成
e
t
s
e
T
o
H
r
e
m
e
t
s
e
T
o
rH
e
m
16. 实施问题
e
t
s
e
T
o
rH
e
m Mock
存储变更 量
根据压测计划,规划容
压测前自动扫描对比
e
t
s
e
T
o
H
r
周期性 job
e
m
部署一些新的 job 实例
数据导出速率
按实例拆分,并行导出
e
t
s
e
T
o
rH
e
m
17.