对于电影爱好者来说,每次的电影节、影展活动,都是抢票大战的开启,出票速度几乎可以用“秒空”来形容,例如上海国际电影节线上开售的记录是1分钟售出5万张。今天,阿里高级开发工程师念贤主要围绕售票环节,讲述阿里文娱的云智系统是如何支撑高流量并发,保障系统的稳定,不出现重卖等实现方案背后的技术。
作者:阿里技术|
阿里妹导读:对于电影爱好者来说,每次的电影节、影展活动,都是抢票大战的开启,出票速度几乎可以用“秒空”来形容,例如上海国际电影节线上开售的记录是1分钟售出5万张。
今天,阿里高级开发工程师念贤主要围绕售票环节,讲述阿里文娱的云智系统是如何支撑高流量并发,保障系统的稳定,不出现重卖等实现方案背后的技术。
一、背景介绍
先简单分析一下电影节的抢票业务,典型特征是在大流量抢购、高并发的场景下,让用户极快的锁定座位然后出票,特别是热门的影片,会异常的火爆。第一道压力是查询已售座位列表和锁座,需要能快速的支撑用户的锁座请求,且实时查询到已售卖的座位列表,避免发起无效的锁座请求;第二道压力是出票,如果锁座成功,但一直出票失败,会给用户带来很不好的体验。
二、架构设计思考的方向
1.让业务赢
在分层设计上,分成渠道接入层、业务层和服务层。在业务层,对外业务和管理后台功能独立,职责清晰,快速支撑业务;服务层沉淀基础服务,构成稳定的业务和基础服务。
图2:业务技术大图
2.让系统稳定
在架构设计上,接入统一网关让系统安全,有限流,对库存中心和订单中心进行数据隔离,且加入多级缓存方案,让系统稳定。
图3:技术架构图
三、实现方案与技术解析
1.高并发流量如何抗?
电影节的流量是非常典型的秒杀场景,瞬时流量非常高,对于系统的高性能要求就注定很高,在云智中,我们是如何抗高并发流量的?我们通过以下三点来进行阐述:热点数据隔离、流量削峰漏斗、多级缓存。
1)热点数据隔离
在热点隔离这块,云智选择的策略包括:数据隔离和业务隔离。
数据隔离:是把查询已售卖座位和已锁定座位等库存相关的热点数据,隔离出来,单独业务数据库,且使用分库分表,减少系统性能压力,提高吞吐量。
业务隔离:电影节的业务数据,独立的业务数据生成能力,圈定参与活动的业务数据,进行缓存预热,起到隔离的效果。
2)流