前些日子,大批美国网友 “涌入” 小红书,小红书几乎一瞬间就登顶了美区 App Store 免费榜。互联网面向用户的业务流量往往无法提前准确判断,总会面临突发流量,造成服务承受平时数倍的压力,无法及时处理请求。过载保护的目标是服务过载情况下,仍能尽其所能对外服务,不至于系统瘫痪,从而保障用户体验和服务质量。
今天,我们就以社交平台核心的视频点播业务场景为例,为大家分享如何使用压力测试工具,对服务中过载保护方案针对性地进行测试,从而实现方案的选型和日常服务的性能优化测试。希望借此帮助近期类似需求的同学,随时随地发起测试,节省大家的时间!
短视频业务的服务采用微服务架构,在微服务中由于服务间相互依赖很容易出现连锁故障导致雪崩。因此,在接入过载保护时需要考虑到微服务的复杂性,即组合过载问题。
基于这一的特点,视频点播在过载保护上需要达到 2 个目标:
1.是过载保护的能力具有通用性,能适应大多数业务场景;
2.是除了点对点的过载保护能力外,还能解决微服务链式场景和服务多扇出场景下的过载保护。
这里以 tRPC-Go overload control 和 tRPC-Robust 2 款业界常见的过载保护为例,来分享如何开展针对性压力测试,从而确定最适合自身业务场景的方案,其中主要测试对象和参数对比如下:
●接入插件/未接入插件
●服务过载/服务未过载
●单个服务过载/组合过载
●压测时间 3 分钟/10 分钟
在实施压测之前,需要准备大量的测试数据模拟用户场景,优测后台一体化工具支持协议文件自动与 rick 平台同步,省去反复手动上传协议文件的烦恼。
Tips:在新建服务的时候只需勾选 rick 平台同步,每次协议文件更新,会自动推送到优测平台非常方便。
创建的测试场景可自动关联协议文件,并支持参数化配置,添加业务断言非常方便,同时测试场景不仅可用于压力测试,也可复用于接口测试、接口监控等,极大的提高测试效率。
a. 测试场景:自动生成的场景用例,可在全局变量中找到数据文件,包含流量数据的详细请求信息。同时通过出参定义和请求结果断言快速添加自定义断言。
b. 压测任务:基于同一测试场景,配置不同的测试任务,主要在 QPS 的配置上,节点请求(向哪个容器节点/集群发起请求)等定制化部分做修改即可。
c. 手动调压:为提高压测效率,我们选择了手动调压模式,即在压测过程中可以根据服务性能数据随时调整阈值,即刻生效。
优测后台一体化工具提供非常友好的可视化报告。压测任务完成后,可以方便地看到该场景下的所有历史报表和数据;报告对比功能,可以同时查看多次压测结果数据,能够方便直观地进行各种方案的数据分析和对比;与其他平台相比,后台一体化最大优势是将报告结果数据持久化存储,为下次压测做为参考。
通过测试结果,可以对比分析哪款方案整体表现更优:
以上是本次的分享,希望能够对大家有所帮助!
本文未注明其它来源的内容,其版权优测云服务平台所有,未经原作者允许不得转载本文内容。