速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

世界顶级赛事的票务支撑:百万座位与限时匹配

  • 2020-03-22
  • 本文字数:2504 字

    阅读完需:约 8 分钟

世界顶级赛事的票务支撑:百万座位与限时匹配

一、背景

麦座,是大麦旗下的票务系统。去年,我们承接了 2019 年国际篮联篮球世界杯(2019FBWC),核心目标是完成三种套票的运营及售卖。用户可选择的套票方案为:


  1. 球队套票:可以观看指定球队比赛;

  2. 城市套票:可以观看指定城市比赛;

  3. 单日套票:可以观看指定日期(同时也指定城市)的比赛。


要知道,2019FBWC 有 92 场比赛,共计 100 多万的座位,两场比赛间最短时间间隔仅有 10 多个小时,只有上一场比赛打完,才能确定下场比赛的对手和城市。我们的技术难点是,面对套票本身对阵关系及场次的不确定性,如何在百万座位中,快速为套票用户匹配座位。以下是我们的技术解法和总结,希望对大家有借鉴。

二、套票解法

1. 套票问题抽象


我们按照目标场次是否存在,把三种套票分为两类:


1)球队套票定金、城市套票、单日套票。特点在于目标场次一定存在,但是对阵关系和座位图不确定,可以抽象为无座场次下单模型,即在不确定具体场次和座位情况下通过售卖数字库存,为用户锁定某种资格(入场、后续购票等等);


2)球队套票后续阶段。特点在于目标场次不一定存在,败者球队不一定有后续比赛。但是随着赛程推进,一轮打完必然知道下一轮的对手以及比赛城市,此时只有已经交了球队套票定金的观众可以继续以较便宜的价格购买球队套票下一阶段的门票。


针对球队套票赛程阶段,我们需要提供的是锁定资格后不断购买指定球队后续比赛场次门票的能力,即给客户“配单”。而无论何种套票,用户最终还是要进场观赛,需要要在验票入场前告知用户实际座位,因此我们提供将无座订单转化为有座订单的能力,即给客户“配座”。


为了解决配单、配座问题,麦座设计了两个工具:


1)配单工具:球队套票,每个阶段之间通过工具,生成下一阶段待支付订单,延续用户购买套票资格;


2)配座工具:具体比赛场次出来后通过工具,将无座套票映射到有座场次,给用户机选座位,最终实现用户座位分配。


2. 解法一:配单


配单功能适用于球队套票的分阶段售卖,世界杯的球队套票分为六个阶段。



图 1 赛程抽象


第一阶段为定金支付,支付定金后,获得后续球队套票购买资格,后续共分为 5 个阶段,每个阶段对应小组赛到决赛的实际场次。配单工具要解决的核心问题在于:


1)利用当前阶段的订单信息生成下一阶段待支付订单,同时通知用户支付;


2)保持套票订单之间的关联关系,方便报表统计。



图 2 配单模型


如图所示,配单时基本上是按照原始订单的订单结构信息,复制出目标订单的结构信息,订单结构保持不变,同时所有后续阶段的订单都与最原始的定金订单建立关联关系,后续通过定金场次订单可以统计出套票生命周期的所有订单,方便报表统计。球队套票每个阶段都生成一个待支付的无座订单,并提醒用户及时支付。



图 3 处理流程


配单处理流程如图所示,由于处理时间较长,为了更好的用户体验和性能,需要在订单开始处理后及时返回用户“处理中”的状态,后台采取异步处理。通过消息中间件将处理任务分发到到集群处理节点,另一方面由于底层下单接口 TPS 承载有限,需要每个处理节点(应用实例)控制处理速率,做好限流,图中是通过线程池控制处理速率。



图 4 process 分解


单个 process 的内容如图所示,其中橙色框中的步骤标识有数据库写操作,需要做事务处理。扣减库存、订单保存、订单权限保存基本上是复用的麦座下单 process 中的的 step。


3. 解法二:配座


配座工具适用于所有套票映射最终有座场次的场景。从用户体验上讲,配座与配单不同,配单工具生成的订单需要用户支付,因此必然让用户感知到新订单的生成,而配座工具生成的订单实际上不需要用户支付,而且由于配座的场次非常多,会出现一个原订单生成最多十个目标订单的场景,因此如果让用户感知到其实是不合理的(考虑一个用户某天打开订单列表,可能看见若干莫名其妙的订单),所以订单结构上配座与配单也不尽相同。



图 5 配座模型


配单工具通过关联关系记录套票生命周期,而配座工具通过父子关系,更偏向于传统的购物车订单,即父订单收钱,子订单无需再次收钱。套票无座订单记为父订单,实际的有座场次与套票订单建立父子关系。另外由于配座时不需要用户支付,因此子订单都记为零元订单,以免后续报表和对账结算金额无法抹平。


球队套票每个阶段、城市套票、单日套票最终要映射到有座场次,座位的选择是通过机选实现,配座流程与配单流程大部分是可以复用的,不同之处在于配座需要为用户机选座位,因此需要插入机选步骤,如图 6 所示。同样,图中的橙色框标识有数据库写操作,需要做事务处理。



图 6 process 分解


配座是麦座与大麦票务中台融合的一次实践,也是大麦多年以来票务能力的资源整合。未来大麦票务中台的机选能力可以开放给更多的业务方使用。


5. 如何做的更加通用?


设计之初,我们考虑到了业务的通用性,虽然不同票务系统的差异,不太可能通过一套实现满足麦座、世界杯、票务云的需求,但是玩法是可以借鉴的,通过一套接口流程,可以将套票玩法沉淀下来,后续其他票务系统有类似的玩法需求,仅需要实现接口就可以方便快速的克隆套票玩法,因此我们将接口定义抽取了独立的业务插件(jar 包)。另一方面,使用插件而不是独立应用,是因为配单和配座不可避免的要做权限校验,jar 包可以复用接入系统的权限体系,这样工具只做核心的玩法部分,可以更聚焦。



图 7

三、效果以及未来展望

2019FBWC 总共 92 场比赛,共计进行了 5 轮配单配座,通过后续的业务数据检查,所有座位配置正确,无一错漏,配单配座工具将运营同学原本一周甚至更久的工作在十几分钟内搞定,达到了产品要求的准确、高效,效果得到业务方的认可。


大规模的配单配座在体育赛事中可能成为行业常态,事实上 2019FBWC 的玩法也同时得到了亚运会、冬奥会等赛事的关注,配单配座工具采用的技术并不是阿里特有,同时由于我们采用插件设计,也在一定程度上实现了可复用,方便的推广到其他票务平台。


作者介绍


阿里文娱技术专家 展恒


相关阅读


电影垂直行业的云智开放平台如何炼成?


阿里工程师带你了解 B 端垂类营销中心如何设计?


云智前端技术如何赋能场馆院线?


60 秒售出 5 万张票!电影节抢票技术揭秘


电影行业提升 DCP 传输效率,还能这样做!


超大型场馆的绘座选座解决方案


大型赛事稳定性保障:Dpath 为世界军人运动会护航


2020-03-22 10:001714

评论

发布
暂无评论
发现更多内容

28天瞎写的第二百三十七天:抢了HR 饭碗了吗?

树上

HR 28天写作

为什么要持续学习

不在调上

Seata1.4.0源码编译

飞鸟

seata

游戏夜读 | 游戏中的确定性

game1night

分析 BAT 互联网巨头在大数据方向布局及大数据未来发展趋势

五分钟学大数据

大数据 2月春节不断更

【Linux系统】常驻进程应用实践

程序员架构进阶

Linux 守护进程 七日更 28天写作 2月春节不断更

日记 2021年2月3日(周三)

Changing Lin

个人感悟 2月春节不断更

图解 | 原来这就是线程池

架构 线程池

Redis缓存热点引发的思考

Java架构师迁哥

管理笔记[6]:任人唯贤、赏罚分明、任人所长

L3C老司机

思维导图整理Java并发基础

Java 架构 并发

Mac打开wps后风扇转的快机身发热

现实中游走

Mac cpu 100% wps 机身发热

第四周-第一课

Geek_娴子

机器学习笔记之:Addition and Scalar Multiplication

Nydia

全面提升企业的主动防御能力,UCloud全新架构云安全中心正式公测!

UCloud技术

网络安全 恶意解析 云安全 安全漏洞

链上公开透明 链下迷雾重重 区块天眼能否拨开行业疑云

CECBC

区块链

区块链时代,企业如何构筑竞争力的护城河?

CECBC

区块链

100+标杆案例和1个减法:华为“懂行100”给2021带来了什么?

脑极体

原子性操作类的使用

武哥聊编程

Java 多线程 原子性 28天写作

每个人都应该理解这三个基本的 MLOps 概念

李忠良

28天写作

5G专网是个大西瓜(二):碰撞之谜

脑极体

硬核!阿里自爆虐心万字面试手册,Github上获赞89.7K

996小迁

spring 架构 面试 程序人生 JVM

通过扫码提交信息

IT蜗壳-Tango

七日更 2月春节不断更

常用网址

现实中游走

黑客练手入门| pwnable.kr—幼儿瓶—01:fd

BigYoung

黑客 安全 安全漏洞 28天写作 2月春节不断更

商务部发力数字商务:鼓励企业开展区块链等先进技术创新应用

CECBC

区块链

冰河去腾讯了?

冰河

程序员 程序人生 冰河 冰河技术

Nacos源码编译

飞鸟

nacos

深入理解nodejs的HTTP处理流程

程序那些事

node.js HTTP 异步编程 程序那些事

💯 关于 TCP 三次握手和四次挥手,满分回答在此

飞天小牛肉

面试 后端 计算机网络 TCP/IP 2月春节不断更

信息茧房

lidaobing

28天写作 信息茧房

世界顶级赛事的票务支撑:百万座位与限时匹配_文化 & 方法_阿里巴巴文娱技术_InfoQ精选文章