爆肝整理,性能测试-双十一等大促活动稳定性保障分析,一篇通透...
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
大促典型场景及优化方案
1、云资源稳定性保障
单云模式存在一定稳定性风险,混合云架构在容灾方面效果更好;
核心链路梳理,可以将历史大促或者峰值的访问URL存储起来,经过处理后作为核心链路参考;
验证线上的性能容量搭建单独的仿真环境,为了避免和线上不一致,可通过一套标准的脚本来进行检查配置;
弹性伸缩容:设置动态扩缩容,超过固定的比例阈值,进行动态扩容(双十一零点峰值时候慎用);
云资源保障方面,和云厂商提前沟通,尽可能将没有大促业务的公司服务器资源和自己公司放在同一个可用区或机房,避免资源共享&竞争导致的问题,同时邀请云厂商驻场保障也是很有必要的;
2、电商场景的性能优化实践
1)应用优化
火焰图、链路追踪分析是很好的问题分析助力工具;
利用监控,Arthas等工具探测链路在哪个方法/代码块耗时大,不断压测优化验证;
2)业务优化(深库存场景)
为了应对秒杀场景高并发,可以通过缓存+数据库方式来解决;
90%库存放缓存应对高并发;
10%库存放数据库应对超卖;
3)数据库优化(深库存场景)
阿里云RDS有针对库存更新的patch,可以到3000/s;
3、数据库稳定性保障的SOP
数据库的可用性底线:99.99%;
故障需要有严格的定义规则;
数据库稳定性三板斧:
1)扩容:DB是有状态服务,计算层便于扩容,将DB节点放到容器中,有需要扩容;
2)灾备:对于大流量读场景可通过流量切换方式,将部分流量迁移到备份集群分流;
3)巡检:慢SQL是常见的问题,可通过自动监控和历史数据分析,提供辅助式决策;
线上监控告警及容灾预案
1、如何做好监控告警?
关键路径收集;
容量指标限制;
2、除了基础监控,还有哪些关键监控指标?
线程池监控;
预估指标-容量规划;
3、分布式集群架构,单节点对整体的影响是什么?
单节点可能是关键节点,少量报错很难被发现,需要单点监控分析;
单节点出现问题可以T下线,通过日志等手段进行报错分析,保留现场;
4、除了基础监控,服务层会做哪些监控相关的事项?
数据库层也需要做好监控;
比较好的实践是双机热备,在数据同步方面需要有专门的保障机制;
5、高并发下,MySQL主备同步会有较大延迟,该如何处理?
采用MySQL的并行复制+写操作不刷盘方式;
非交易业务的查询放在备库,降低主库压力;
梳理落地SOP机制,遇到问题时首先快速线上止血,解决故障;
存在主备延迟情况,可以开启参数调整方式来处理(临时开启,快启快关) ;
同城双活架构下,可通过定时任务的方式自动检测MySQL的双0模式,定时改写数据;
高并发下MySQL主库往往写压力比较大,事务日志和binlog IO比较频繁,导致备库拉取binlog比较卡,较好的方式是通过降级延时方式做数据同步,保证最终数据一致性;
服务保护手段:限流降级熔断隔离
限流:
限流的目的是控制访问应用的流量在系统承载范围内;
在业务请求入口(网关)限流,避免内部互相调用放大流量;
限流是个演进状态,从连接池、IP、指定SQL到更细的层级粒度做限流;
每个调用层都做限流,每个应用先保证自己可用,对其他依赖调用要做到“零信任”;
降级:
降级:强依赖可以通过熔断的方式做紧急处理,弱依赖提前主动降级;
预案:分为主动预案和紧急预案:
1)主动预案:提前进行风险识别,然后针对性的方案,可以降低已知的风险;
2)紧急预案:假设出现重大的问题,才需要决策是否启用的方案(风险较大);
3)预案平台:预案平台的目的是留痕,方便后续把预案恢复回来;
熔断:
熔断下游强依赖的服务;
大促四板斧:关停并转。
1)双十一零点的前半小时, 做一个动态推送,把日志关掉;
2)真正流量来的时候,留一台机器来观察错误和异常的日志;
隔离:
隔离:核心业务和非核心业务做隔离;
身份识别和业务隔离:
1)RPC group分组:假设有100个节点,40个给核心业务(交易),60个给其他业务;
2)业务身份:中台架构可通过业务身份把订单秒杀等应用打上标记,便于隔离区分;
业务稳定性保障:
涉及到交易订单&优惠券等和钱有关场景,线上造特殊数据进行实时定制化校验对账;
完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最动人的风景,往往藏在最难攀爬的高处。当你觉得力竭时,请记住:每一次坚持都在雕刻更强大的自己。别问路有多远,只管迈步向前;别怕山有多高,向上攀登就是答案!
你体内沉睡着改变世界的力量!每个清晨都是改写命运的新机会,每次挫折都是精心包装的礼物。当全世界都在说"不可能"时,正是你证明"可能"的最好时机!