作者andayy (狠角色)
看板A-MEI
标题[新闻] 解决20万人秒杀抢票系统架构大揭露
时间Sat May 30 06:24:04 2015
拓元售票公司总经理邱光宗:系统如何撑过开卖瞬间涌入的购票流量,而後端金流也能跟
上爆量交易需求,将是台湾未来秒杀售票服务最大挑战
文/黄彦棻 | 2015-05-29发表
从五月天、金马影展,甚至到张惠妹、江蕙演唱会门票的抢票问题,一直是许多热门活动
承办人员的最痛,如果是超商的ibon抢票,等着下班的店员和其他现场拿号码牌排队的民
众,就是等着现场ibon机台抢票民众最大的对手;而网站抢票,更因为售票网站设计不良
,瞬间涌入的购票流量,形成类似DDoS(分散式阻断式)攻击,瘫痪售票网站的正常服务
。日前在12分钟内卖出12万张张惠妹演唱会门票的拓元售票公司总经理邱光宗,近日在
Modern Web研讨会上,首度揭露拓元售票系统的云端架构。
邱光宗表示,目前台湾售票最大的问题在於网站架构和金流问题,就算网站撑得住大规模
的流量,但金流收单付款上,还是有其限制。因此,他说,拓元在处理张惠妹演唱会的售
票时,便透过事前的沙盘推演,把每一个环节可能会发生的意外或者是服务中断的部份,
清楚定义後,也把解决问题的SOP(标准作业程序)也清楚明定出来,不论哪个环节出错
,就照着SOP快速解决问题即可。
邱光宗说:「最後出错的环节就是收单刷卡挂点,许多消费者无法结帐。」因此,就照着
原订的SOP计画,先「确认票务资料库正常」後,便保留原本抢到票券订单的资格,将有
付款问题的票券批次转虚拟付款帐号并公告 ,只要消费者在指定时间内完成付款手续,
即可保留该票券资格。
但是,邱光宗也很清楚的意识到,未来所有的售票系统最大的考验在於,人人都用智慧型
手机作为标准的终端设备来购票时,售票系统如何撑过开卖瞬间涌入的购票流量,而後端
金流机制也能跟上爆量交易需求,将是台湾未来各种秒杀售票服务的最大挑战。
从网站售票到ibon售票
台湾的网路售票早在1996年的年代售票系统开始,当时1万张票券可以在4~6小时内销售
完毕。而从2000年开始,邱光宗表示,拓元售票最大的法人股东拓连公司便开始做网站、
资料库、接专案、营运商城和提供售票服务,像是金马影展官网到现在都还是拓连负责维
运。成立於2007年的元气娱乐主要是负责ibon的售票系统,由於统一超商在2008年开始普
设ibon机台,也让ibon成为标准的售票端末系统。
在这个过程中,拓元售票一路从拓连公司到元气娱乐提供售票服务过程中,都遇到一些挫
折,也带来秒杀售票系统的转型。
邱光宗表示,最早从2003年提供常态性的售票服务开始,网路使用者都透过Web平台存取
售票资料库系统,当时,只能增加实体的网路伺服器,以避免资料库被打挂,所以,如何
维持售票资料库不当机,则是维持售票服务正常化的重要任务。但到了2007年,因为网站
存取负载过大,所以,拓元售票系统开始第二次转型,在原本Web和资料库系统中间,多
加了一层的API架构,分散网站存取资料库的负载。
2009年ibon开始提供售票後,拓元启动了第三次转型,因为当时无法面对从网路上来的购
票流量,所以改透过超商内部网路来进行票券销售。邱光宗表示,比网际网路上的流量,
透过内网传输的流量就易预测和管控,再加上ibon全台数量最多不超过5千台。不过,消
费者虽然可以在有遮风避雨的地方买票,却也衍生出不少问题,除了排队占ibon机台外,
甚至还曾因为ibon系统爆量的售票交易流量,反而影响了超商POS机的正常运作,导致POS
当机无法结帐,当时也有许多消费者,因为超过预定的付款时间,原本的票券失效得重新
购票。不过,邱光宗指出,在系统的调整後,在2011年ibon售票也完成10万张演唱会票券
,在1小时内完售的新目标。
第四次转型,打造云端售票系统
这段时间内,行动装置的普及以及云端服务的兴起,带来拓元售票系统第四次转型。2008
年,亚马逊云端服务AWS的流量已经超过Amazon.com和Google;在2014年,行动装置的数
量更正式超过桌上型电脑,所有服务已经到了必须正视行动网路需求的时刻。
在面对20万人上线抢12万张票的同时,拓元至少得让20万人上得了售票网站,不仅要短时
间内销售完毕,也必须让消费者保留选择的可能性,所有的售票伺服器资料随时同步备份
,邱光宗说:「让每个人同时上网抢票是最公平的,也可以杜绝黄牛票。」所以,拓元选
择AWS的EC2,目标是能开多少台虚拟伺服器,就先开多少台,以张惠妹演唱会售票来说,
就开了1,300台左右。
不过,要因应秒杀抢票的关键问题是,如何处理大量使用者大量连线的记录,拓元使用亚
马逊DynamoDB取代了原有的MySQL资料库,先将登入使用者的资料存入资料库後,再往後
将资料抛转以API接手处理。不过,因为开启伺服器还是需要时间,便参考模拟以及过往
经;2验,事先算好要开启的虚拟机器数量,不用优化、直接启用即可。
透过API抛转处理的资料再经过亚马逊的负载平衡设备(Elastic Load Balancing,ELB)
进行分流後,再行汇入拓元自己的票务资料库。邱光宗表示,因为要保留消费者选区选位
的即时性,前後端资料库间,目前还有30~60秒资料无法同步的情况,未来还寻找其他服
务来解决。
邱光宗表示,开卖前10分钟需先检查虚拟伺服器的数量是否足够。开卖前1分钟时,他们
则密切观察使用者连线(Session)情况。但在开卖後3分钟时,发现金流出了问题,无法
收单刷卡。也因为事先已有沙盘推演,所以,拓元遂按照SOP於开卖後10分钟改用其他方
法来解决收单刷卡的问题,顺利在开卖後15分钟卖出所有票券,并对外公告部分无法完成
结帐的票券,提供虚拟帐号付款方式给民众补缴费。等到缴费期限过後,最後再将少数未
付款的座位释出销售。
他指出,目前拓元的票务系统每秒可以处理200~300笔订单,系统采取优化措施後,每秒
更可以处理500笔以上的订单;但目前,台湾银行收单速度,「每秒只能处理30笔资料,
采取一些作法来优化时,每秒可以处理75笔资料。」因为银行收单与票券订单处理速度有
极大落差。未来,邱光宗计画透过网站前端介面的导引,来延长订单送到收单银行的处理
时间,再搭配ATM虚拟帐号收单,并限制1小时缴款期限,以兼顾票券销售速度和金流处理
速度的两难议题。
http://www.ithome.com.tw/news/96113
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.228.117.37
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/A-MEI/M.1432938247.A.9C5.html
1F:推 PTTOnline: 虽然看不懂,不过推!真的是买过大大小小演唱会里不错 05/30 06:29
2F:→ PTTOnline: 的 05/30 06:29
3F:推 Yelnats28: 乌托邦好像变成售票史重要的一役XD 05/30 08:32
4F:→ wowowg: 30-60秒资料库不同步 表示看到都是错的 05/30 09:34
5F:→ wowowg: 根本就烂死了 看到有票点进去没票 大家还记得吧 05/30 09:36
6F:→ wowowg: 最後根本点过没确认就算买到票 05/30 09:40
7F:→ wowowg: 一堆人不知不觉抢到票 根本就是错误到不行 05/30 09:41
8F:→ wowowg: 讲穿了就只有花钱开了1300台伺服器 05/30 09:44
9F:→ wowowg: 前面看到票都选好 结果因为30秒落差 05/30 09:46
10F:→ wowowg: 拓元票务系统回应已经被买走 当天都是这样 05/30 09:47
11F:→ wowowg: 前面选了几次都没用 因为30秒落差都是错误资讯 05/30 09:48
12F:推 POPunk: 推 05/30 10:49
13F:推 kevinshyu: 加上江蕙後来加场,预选位再加上拓元同时登入的比较完 05/30 11:16
14F:推 kevinshyu: 整,整合大家的优势,会更强大(结帐方式可再改善)赞 05/30 11:18
15F:推 sf2002: 虽然仍有 60秒不同步 及 金流的问题,但拓元都有看到, 05/30 12:01
16F:→ sf2002: 并愿意想办法解决。 不得不推一下^^ 05/30 12:02
17F:推 kyle421: 伺服器顺势优点 但前面提到的实际剩余的票跟显示的票无法 05/30 12:07
18F:→ kyle421: 同步令人困扰 点进去之後以为有票但转了好几次都没票 05/30 12:07
19F:→ kyle421: 希望下次可以更好不过这次至少死得比较快 不用忍受煎熬XD 05/30 12:08
20F:推 Yelnats28: 江蕙的预选位也不错 不想在超商排队煎熬 05/30 12:39