Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >“死扛”高并发大流量,大麦抢票的技术涅槃之路

“死扛”高并发大流量,大麦抢票的技术涅槃之路

作者头像
AI科技大本营
发布于 2020-04-07 08:16:03
发布于 2020-04-07 08:16:03
2.6K0
举报

作者 | 阿里文娱测试开发专家舒琴、锦烨 出品 | AI科技大本营(ID:rgznai100)

大麦抢票背景

大麦网主要的业务范围为演唱会、音乐会、体育赛事、话剧、展销会、亲子活动等现场类 的票务业务,其业务链条涵盖从 B 端生产、C 端销售、现场换验的全套流程。大麦网一类典型项目是稀缺的火爆 IP 项目,如演唱会、游戏体育赛事,这类票务隐含了时间、空间的特殊限制属性,是需要抢的。大麦抢票是演出行业的双 11,涉及场景复杂、系统较多、链路较长,抢票 保障尤为重要。

大麦抢票保障大致经历了几个阶段:第一阶段:“原始”阶段,保障不健全,设施不完善;第二阶段:“弹内化”阶段,部分大型抢票顺利完成;第三阶段:“体系化”阶段,能够承接所有大型抢票;第四阶段:“常态化”阶段,大抢体验优化升级。

“原始”阶段

大抢容易出现限流,体验不顺畅等现象,囧!

1. 为何会这样

此阶段的大麦还处在原技术团队和阿里系业务、产品、技术各方都在讨论及对焦阶段,大 部分大型抢票核心系统还在大麦的 IDC 机房,技术体系走.net 和 java 的混合体系,大麦原体系 主要承载此阶段的大型抢票任务。

为什么此体系下,每逢大型抢票就会面临如此大的压力和风险呢?分析主要有以下几点原 因:

1)保障设施不健全:大麦 IDC 机房硬件设备、带宽等均有限制;DB 采用 SQL SERVER 企业版,很多数据库都是单库。在应对大型抢票时(特别是选座购买,耗带宽、耗资源),会面 临严峻挑战;

2)预案/限流待建设:系统在高流量、高压力下的保护措施待建设,比如:限流和降级, 造成系统一旦超过压力,就直接报警;

3)监控运维零散:定位问题、解决问题耗时较长。

2. 方案和结果

这阶段也采取了一些临时方案,比如:极简限流方案、一些点的性能优化、修改应用配置 参数、整理抢票预案等等,也缓解了一些问题,但整体上仍未解决大型抢票问题。

“弹内化”阶段

基于第一阶段的诸多问题,产品、技术已经启动大面积系统改造,直接重构新系统到阿里 域内,用新系统建设逐步替代老系统,即空中换引擎方案。

1. 空中换引擎

要快速将关键系统重构到阿里域内,确立了直接迁移、临时方案或长期重构等步骤,具体 方案是:

1)APP 链路部分弹内化:技术改造重点放在无线端,所有 APP 用户调用接口的入口先走 到阿里域,再路由到大麦 IDC,让阿里机房来抵档大量流量;

2)借助阿里基础运维能力:由于入口接口入到阿里域,一些限流及降级的事情利用平台就 可以做,运维监控也完全可以利用 eagleeye、maieye 等排查工具来做了;此过程中用户中心、消息中心等服务开始向阿里域内重构并上线;

3)抢票预案初步建立:在主站的预案平台建立了大麦的大型抢票预案,比如:商品详情页 增加了 tair 缓存,靠 tair 在阿里域内扛住流量,减少打到大麦 IDC 的请求调用;

2. 坚定路线不动摇

优化后的热量抢票项目系统正常,但限流会影响用户体验。分析抢票过程中出现的问题, 集中在了弹内化范围、机房的瓶颈、运维经验不足等。所以,催生了第三阶段,大型抢票全链 路收口进阿里域内。

“体系化”阶段

针对上阶段遗留的问题,业务和技术针对抢票流程和系统做了全体系化升级,确立了完善 的抢票流程和抢票保障机制。升级后的大麦能承接住所有大型抢票,且用户体验有所提升。

1. 弹内化全面开花

1)新搜索在阿里域内上线,搜索 response 过大的问题也都解决,不存在对带宽的影响了;

2)新选座在阿里域内上线,大型抢票的选座流量直接打到阿里域内,利用异步化和类似 ConcurrentHashMap 的机制平衡了对大麦 IDC 选座的调用量及缓存的一致性;

3)新交易在阿里域内上线,将核心的创建事务号接口、下单接口全部都放在了阿里域内, 单下单后订单要同步到大麦机房的进行后续履约服务;

2. 保障流程建起来

基于抢票活动业务方和技术方信息不一致、或临时抢票活动准备不充分等情况,由测试方 牵头和各业务方、各技术方针对抢票流程、参与人员、抢票设置各项达成一致,并沉淀出抢票 保障流程和方案,相关人为操作建立 SOP 保障,优化后的流程为:

1)【流程建设】抢票阶段分为抢票前、抢票中、抢票后:抢票前重点是由业务方抢票申报,再由技术方确认是否安排预演或压测,根据业务方和历

史抢票信息判断抢票级别来决定抢票预案执行范围和风控级别;

抢票中重点是过程监控和应急处理;抢票后重点是预案恢复、抢票报表输出,以及抢票过程中问题复盘;2)【流程建设】抢票参与角色中:产品、开发、测试、公关 抢票涉及多个业务方,主要业务保障人是 BD、编辑、客服,主要支持角色有开发、测试、客服、公关等相关人员;

抢票过程中相关角色各司其职,共同保障抢票。印象比较深的就是这个阶段每逢大抢,一 屋子相关抢票人员聚集,在抢票顺利完成后,会议室传出的阵阵欢呼声。

3. 预案/预演/容量/Action 专项

抢票保障的每一项操作都需要在业务方明确项目信息后,由测试牵头拉各方参与人员整体 评估和协调执行,不管是抢票前的准备还是抢票后的复盘,每个小的专项都执行到位。

1)【质量保障】项目预演:一般已有成熟流程的项目不会再安排预演,对大型抢票或未抢 过的新玩法,测试方会安排模拟抢票。主要由各业务方、技术方和各端测试同学共同参与,提 前暴露业务、设置问题或体验问题;

2)【质量保障】性能容量:技术拉取全链路最近类似项目的最新压测数据,和线上实际容 量做评估,分析抢票预估量是否能顺利支撑,是否有性能瓶颈或限流情况,提前通知业务方;如项目玩法没有最近的压测数据支撑,由测试方安排大抢项目压测;

3)【技术优化】预案执行:全链路涉及的首页搜索、商品详情、票务云选座、交易下单、 票务云库存、订单服务、无线端等梳理大抢模式的前置预案和紧急预案。如商品详情前置预案:对艺人、关注、营销等降级处理,调整用户、场馆、详情缓存时长,抢票前 30 分钟预热限购服 务的 BD 和 tair 等;

4)【质量保障】问题复盘:每次抢票完成后对抢票过程中各方暴露的问题、客服反馈的高 咨询、线上收集的 bug、内网帖子吐糟、外部用户微博或微信转载等问题,测试方统一收集, 组织各方复盘后优化方案落实到 action,并跟进 action 执行进度;

4. 抢票监控大盘

除各业务定制的抢票监控项外,抢票期大盘的汇总数据监控,可以为每次抢票更好地提供 监控数据支持,方便业务方一目了然 get 到抢票数据,具体信息如下:

“常态化”阶段

上阶段系统化升级完善后,大家肯定会问,大麦抢票不会出问题了吧?我们可以很负责地说肯定再不会出现宕机情况,但是在近期超稀缺 IP 抢票因为项目太火

爆,抢到票的毕竟是少数人,大抢之后出现的二手高价售卖现象、抢票不流畅导致抢不到票等问题,被抢不到票的内网小二、外网用户疯狂吐槽。总结槽点主要集中在抢不到票、商品详情被限流、下单交互耗时导致抢不到票、抢票异常

情况对用户提示不友好等等,针对这些问题除了产品方案的优化,技术同学也成立了很多抢票

专项解决用户痛点,这些小而美的体验极致优化,你注意到了吗?

1. 为真实用户护航

此阶段磨砺了近一年的大麦新交易系统上线了,新交易和共享星环平台全面融合,核心的 渲染接口、下单接口基于星环能力实现了大麦扩展特性;新交易架构图如下:

融入共享对大麦来说好处很多,针对抢票流程的贡献主要有 3 点:1)【技术优化】依托共享基础能力 除了可以复用共享能力,还可以参考主站交易的大抢方案,比如限流、系统日志监控、问

题排查平台等等。技术方实现基于星环体系的未支付关单定制,由业务方指定关单时长,有效

降低了恶意占用库存现象发生。

2)【体验升级】接入集团风控体系:服务于线上火爆抢票的三层防控技术体系,实际由大麦用户风险评分、集团安全 MTEE 人

机识别、定制化的策略包组成。在交易流程的渲染、下单以不同维度对非法用户进行二次拦截,让真实用户的抢票体验更顺滑,大大提升了真实用户的购买率。

2. 核心链路模型优化

1)【体验升级】商品详情无限流:从以往抢票看,商品详情页每逢大抢不仅要借机器还要 限流,成为了用户槽点聚集地。商品详情主要实现了流量分散策略:

a)策略上减少开抢前并发请求,由于散列控制在较短时间,能够快速上线快速验证,但效 果不明显;

b)交互上倒计时结束后用户点击替代自动刷新来分散流量,效果明显 c)流程上减少物理调用,倒计时用户点击购买时只调用二级页,倒计时校验交给二级页,效果非常明显。改造后详情页与弹层页流量从巨大差距到基本持平再到流量较大反转,商品详情抢票再也 不用借机器,且足以支撑目标最高热门项目抢票,再不会触发限流!

2)【体验升级】交易下单扩入口:从以往抢票看,交易下单大流量时容易触发限流,用户反馈抢不到票。针对交易下单的主要策略是:

a)放大入口+风控拦截+兜底限流,首先让真实用户能够进到交易,再通过风控过滤掉异常 用户,最后用兜底限流保护下游系统,从而最大限度的保障用户抢票顺滑;

b)对渲染阶段的支付方式和支付特权做优化,实现大抢时渲染对支付方式调用降级,降低 用户渲染或异步渲染被流控的风险;

3. 性能常态化

为摸清交易链路最新性能水位,测试团队启动了性能常态化项目。每月定时执行压测,并 结合当月各系统功能发布、性能优化或上下游支持,评估具体的压测场景和压测目标,压测完 毕后更新链路依赖现状,为抢票提供最有效数据。

1)【质量保障】常态化执行:如近期的稀缺 IP 项目抢票再次刷新各榜单列表,开发和测试 一起根据现有流量重新对系统进行压测摸高评估。

2)【质量保障】压测自动化:测试梳理了压测流程,沉淀了各业务线压测白皮书。提炼出 过程中耗时较多的步骤,实现自动化执行,如原临时项目生成压测数据和压测前设置需要 11-12 步耗时半天,现在常态化固定项目生成压测数据和仅需要 3-4 步 3 分钟即可。

4. 预案自动化

之前抢票存在抢票活动频繁,抢票无统一规范流程(监控、预案、入口),支持人数多,组 织抢票会议,耗费人力等问题。

1)【技术优化】抢票控制台:

使 BD 或者运营在【抢票开始前】可以设置一些预案,【抢票过程中】提供统一视图对抢票 进行【实时监控】,并且有能力进行【人为的干预和控制】,在【抢票结束后】能够提供历次抢 票数据以供分析,从而帮助 BD 自助完成抢票,实现“无人值守”具体实现流程如下:

2)【技术优化】商品详情预案:

详情页每次大抢都需要人工降级 6~10 项预案,各项预案设置的值、执行时间等各有差异, 在预案设置时还需根据个人经验做评估调整,人工操作太繁琐。详情预案基础策略是对原降级 项实现本地缓存或 tair 缓存,第三方依赖接口限流异常降级补充,优化后仅保留 1 项需手动配 置的预案,其他皆已实现自动化。

5. 常态化成果

通过常态化各专项保障取得明显成效,近一年支持的抢票项目近千场,其中大型抢票近百 场。其中近期热门「超大抢」项目,商详/下单渲染/下单均创历史峰值,系统顺利承接;热门「大 抢」项目,特权码选座和普通选座,特权及选座峰值均创新高,系统顺利承接;

结语

大麦抢票经历了“原始”阶段、流程建设、技术优化、专项保障等四个阶段建设后系统已稳如磐石,对提升用户体验上也在不断努力。当然可能还是存在或多或少的问题,目前的技术方案也可能不是最优的,比如项目热度智能分析、风控自动调节等等,也已经在技术优化计划中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
1分钟售出5万张票!电影节抢票技术揭秘
对于电影爱好者来说,每次的电影节、影展活动,都是抢票大战的开启,出票速度几乎可 以用“秒空”来形容,例如上海国际电影节线上开售的记录是 60 秒售出 5 万张。
AI科技大本营
2020/04/01
4830
1分钟售出5万张票!电影节抢票技术揭秘
抢票神器:大麦网抢票实战教程
文章链接:https://cloud.tencent.com/developer/article/2469505
LucianaiB
2024/11/26
7910
抢票神器:大麦网抢票实战教程
首次揭秘!大麦如何应对超大规模高性能选座抢票?
作者| 阿里文娱技术专家恒磊、高级开发工程师新钱 出品 | AI科技大本营(ID:rgznai100)
AI科技大本营
2020/04/14
1.2K0
首次揭秘!大麦如何应对超大规模高性能选座抢票?
浅谈有赞搜索质量保障体系
有赞搜索中台的前身是ES中间件,并没有一个中台的概念,相应的就会有一个问题,业务接入搜索场景的时候还需要为此投入开发资源同步搜索设计,一个需求上线往往耗时很久,重复性工作较多,所以就有了后来的搜索中台的成立,将搜索完整链路的复杂性折叠成一个简单完整的搜索产品,让业务方直击搜索需求,无需费心搜索实现;在此前提下,如何针对搜索中台进行一个从0到1的完整的质量保障也是一个挑战,且中台面临的问题可能跟传统业务面临的不大一样,保障手段也需要更多样化。
测试开发社区
2021/07/27
9870
浅谈有赞搜索质量保障体系
亿级流量下的高可用实践:携程门票秒杀架构如何设计?
随着旅游业的后疫情时代复苏,携程门票预订交易系统迎来复苏浪潮。面对亿级流量冲击,系统以"稳、准、快"为目标,应对高并发秒杀活动。通过缓存热点识别、大Key优化、数据库负载减轻、供应商稳定性提升、精细化流量控制及数据一致性保障等策略,携程成功提升了系统性能,例如,Redis查询性能从300μs优化至100μs,系统能支撑数十万单/分钟的交易流量,确保了在高负载下的稳定运行和持续高可用性。详细的解决策略和方法,请参阅文章正文。
TakinTalks稳定性社区
2024/11/14
3020
亿级流量下的高可用实践:携程门票秒杀架构如何设计?
高可用 兜底方案
对于秒杀系统来说,在大流量的迅猛冲击下,都曾经或多或少发生过宕机的情况。当一个系统面临持续的大流量时,它其实很难单靠自身调整来恢复状态,你必须等待流量自然下降或者人为地把流量切走才行,这无疑会严重影响用户的购物体验
BUG弄潮儿
2021/09/10
1.4K0
高可用 兜底方案
高并发之降级
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。之前已经有一些文章介绍过缓存和限流了。本文将详细聊聊降级。
lyb-geek
2018/07/26
1.9K0
换个角度,聊聊全链路压测
之前自己也写过好几篇关于全链路压测的文章或者博客,最近看了infoQ上infoQ-数列科技杨德华的专栏,复盘了下自己以往在全链路压测实施方面的工作,发觉还有很多可以做的更好的地方。就以这篇文章来做个总结,顺带说说我自己实施全链路压测工作方面的一些收获和经验。
老_张
2021/01/14
1K0
换个角度,聊聊全链路压测
干货 | 1分钟售票8万张!门票抢票背后的技术思考
HongLiang,携程高级技术专家,专注系统性能、稳定性、承载能力和交易质量,在技术架构演进、高并发等领域有丰富的实践经验。
携程技术
2021/10/20
1.7K0
服务治理在猫眼娱乐的演进之路(一)- 高可用治理中心
ArchSummit_全球架构师峰会(北京站)2019-InfoQ​archsummit.infoq.cn
吃橙子的狐狸
2019/12/19
9410
服务治理在猫眼娱乐的演进之路(一)- 高可用治理中心
《阿里测试之道》第二章笔记
3 预案开关推送(https://blog.csdn.net/weixin_35881820/article/details/113015410)
顾翔
2022/12/29
2.8K0
《阿里测试之道》第二章笔记
从技术角度谈谈鹿晗这个事儿
关于鹿晗事件拖垮微博这件事,分享下我的理解。只做客观分析,不吹,不喷,不黑,因为这个事情绝对不是像网上传的,什么微博架构烂、技术不行、可扩展性差、控制预算成本所以节省服务器、或者是运维要背锅等等,绝对不是这么不痛不痒的几句风凉话就能简单解释清楚的。
赵成
2018/08/09
1.3K0
从技术角度谈谈鹿晗这个事儿
2018-06-08 从单一架构到分布式交易架构,网易严选的成功实践
https://mp.weixin.qq.com/s/syM4ReAWpZ5d4KI87ogpiQ 作者|马超编辑|薛梁过去两年严选提出并设计了统一售后模型、最大可退金额、和多级退款引擎等概念,抽象出了销退支持、上门取件、极速退款、售后风控等通用能力,经过几次架构演变,有效的降低了业务逻辑耦合和复杂度,可以做到上层业务的快速搭建和服务接入。 作为电商产品,交易在严选的业务中承担着重要的角色。随着业务的不断发展,交易场景的定制化和差异化开始凸显,同时第三方支付合作方的接入也越来越多,如何在保证交易服务安全稳定
Albert陈凯
2018/06/12
9820
经历过“必要时,码不亮”后,聊聊运维必须了解的高并发知识
首先是指用户请求的数据能少就少。请求的数据包括上传给系统的数据和系统返回给用户的数据(通常就是网页)。
李俊鹏
2022/09/21
4130
突围电商大促场景,得物在高可用上的探索与实践 | 卓越技术团队访谈录
采访嘉宾 | 金思宇、陈贞宝、胡强忠 编辑 | 辛晓亮   大型电商系统并非一开始就具有完整设计的高可用特性,而是随着用户的不断增加与业务的快速增长逐步演进与完善的。当前高可用架构体系是互联网企业系统架构的基础要求,随着公司的业务发展,尤其是对于电商平台,每次发生稳定性故障带来的影响越来越大,提供稳定的服务,保证系统的高可用已经变成了整个技术团队需要面对的挑战。 基于此,我们深度采访了得物技术团队核心成员,探索他们在高可用架构上的实践、演进,深入了解大促备战是如何进行的,异地多活体系是如何建设的,全链路
深度学习与Python
2023/03/29
2.1K0
突围电商大促场景,得物在高可用上的探索与实践 | 卓越技术团队访谈录
美团智能支付稳定性测试实战
本文介绍了美团智能支付业务在稳定性方向遇到的挑战,并重点介绍QA在稳定性测试中的一些方法与实践。
美团技术团队
2019/01/09
1.4K0
秒杀系统架构解析:应对高并发的艺术
对于各大电商平台而言,爆款运营和促销活动的日常化已成为常态,而支撑这些的秒杀系统自然是不可或缺的一环。同时,秒杀活动的巨大流量就像一头洪荒之兽,若控制不当,可能会冲击整个交易体系。因此,秒杀系统在交易体系中便扮演着至关重要的角色。
ThoughtWorks
2024/07/04
7860
秒杀系统架构解析:应对高并发的艺术
世界顶级赛事百万座位如何做到票务限时匹配?
麦座,是大麦旗下的票务系统。去年,我们承接了 2019 年国际篮联篮球世界杯(2019FBWC), 核心目标是完成三种套票的运营及售卖。用户可选择的套票方案为:
AI科技大本营
2020/04/14
5070
世界顶级赛事百万座位如何做到票务限时匹配?
在线面试:如何设计一个秒杀系统?
秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。
田维常
2022/04/19
9620
在线面试:如何设计一个秒杀系统?
【经验】一个秒杀系统的设计思考
秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。
良月柒
2019/12/09
9410
【经验】一个秒杀系统的设计思考
推荐阅读
相关推荐
1分钟售出5万张票!电影节抢票技术揭秘
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档