千万级乘客排队系统重构&压测方案——总结篇

一、 前言

发布上篇文章线上真实排队系统重构案例分享——实战篇之后,一些朋友问我们重构进度咋样了,截至目前,我们乘客排队系统重构已经上线,并且灰度1个月了,目前已稳定运行,从目前结果来看,还是远超预期的。这篇文章主要讲一讲,乘客排队场景压测方案以及个人的一些总结。

二、 如何评估一个排队系统性能

关于排队系统压测,也是和运维同学,测试同学碰撞了挺久,大家各执己见。因为之前,也没有对排队系统性能真正的评估,没有标准。我结合目前线上场景(目前排名前10城市),分析如下:

  1. 乘客排队形成排队时机高峰期,时间段(8:00~ 10:00 18:00~19:00 21:00~23:00)

  2. 排队平均等待时间(出队时间-入队时间) 1min ~ 5min

  3. 高峰期各大城市进入排队比例(排队订单量/当天订单总量) 10% ~ 38%

由此可知,排队性能评估指标——5分钟时间窗口支持最大排队数量(取极限值5min)。

三、 压测目标

目前:  乘客排队开全国,10% ~ 38%订单进排队,我们按50%进排队计算,目前高峰期3万/QPM,  计算得:3万 * 5 * 0.5 = 7.5万

目标: 按目前订单量翻5倍目标压测,即5分钟内,支持37.5万订单同时排队

四、压测步骤

序号步骤观测指标操作
01下单后派单——历史流程历史流程5min支持最大排队订单数量,接口QPS情况关闭开关,订单排队5min取消
02下单后派单——新流程新流程5min支持最大排队订单数量,接口QPS情况开启开关,订单排队5分钟取消

历史流程5min同时入队量到达10W订单时,接口出现大量超时异常,到达性能瓶颈。

新流程情况如下—— 5min内入队50W订单排队,无异常,此时重要接口情况如下:

接口目前QPS压测目标压测QPS平均RT
入队3001500300012ms
出队3001500300040ms
是否在队列中30001500015000+4ms
查询排队位置--85008ms

五、乘客排队重构新老对比


5min同时排队订单数量单蜂巢支持最大队列数
重构前<10W<1000
重构后>50W无限制

重构后查询接口平均RT整体降低65%,更新接口平均RT降低40%,且无性能瓶颈,后期可水平扩展。

六 总结

本次重构开发人力只投入了2人(人力有限),开发时间只用了7天,一共20多个接口改造,3个定时任务脚本,外加后台配置管理。在时间紧,任务重的前提下,依然有条不紊地进行,后面测试阶段测试反馈bug也很少。

截至目前,主导重构项目已经有6~7个了,重构做多了,也已经形成自己的套路和方法,方案已经很成熟了,很多细节上的坑可以避免。这里,也欢迎系统遇到瓶颈或者有重构需求,遇到困难的朋友一起交流。

欢迎关注"浅谈架构"公众号,不定期分享原创技术文章。

d1d0f29c2798a594beeef8bae094e178.png

file
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅谈架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值