火车票为何难买?12306与抢票软件的斗智斗勇史
火车票为何难买?12306与抢票软件的斗智斗勇史
国庆假期,你在12306上抢到票了吗?虽然每到节假日"高铁票好难买啊""为什么开票就抢了还是候补呀"等吐槽不绝于耳,但从2011年6月12日上线起,中国铁路客户服务中心12306平台至今已不知不觉走过了13载春秋,也成为了大部分旅客乘坐高铁出行的首选购票平台。
回顾12306的发展历程可以说是一部与抢票软件斗智斗勇,“魔高一尺道高一丈”的“史诗”。
2024国庆,铁路迎来客运高峰ICPhoto
一切还得从12306成立的时候说起。随着2011年6月12日第一张京津城际铁路电子客票的售出,中国正式拉开了铁路网络售票的序幕,此后短短几个月,网络售票的范围就急速扩展到了京沪、武广、郑西等高铁线路。到9月30日,全国范围的高铁车票(G字头、D字头)都可以上12306购买。到2011年底,全国范围的火车车票(Z字头、T字头、K字头)都可以上12306购买。仅用了半年时间,中国铁路网络购票就完成了“从无到有”到“全面普及”的飞跃!
但铁路网络购票的新鲜感还没消散,2012年的春运便悄然而至,春运——这一世界罕见的人口大迁徙盛况,每年都会给中国的交通行业带来前所未有的压力,可以说是交通行业的“大考”。而12306的第一次系统崩溃也来得出乎所有人的预料。
从2012年1月5日起,12306网站连续5天点击量超过10亿次,访问量环比上月激增10余倍,其中1月9日点击量超过14亿次,成为全球最繁忙的网站之一——要知道2011年底中国网民也才5亿人。
对于这样的访问压力平台在建设之初并非没有考虑到。12306系统建设之初,在借鉴和参考客票核心系统架构的基础上,根据互联网应用的特点,研发者们为系统设计了缓存服务、用户管理、车票查询、订单及电子客票处理等多个相对独立的业务分区,以及三级网络安全域,分别是外网、内网和客票网。上线前的压力测试,一笔流程包含用户登录、车票查询、下单及支付等业务操作,系统极限交易能力为34张/秒,按高峰期10小时计算,售票量可达到120万张/天的设计能力。
然而,压力测试却漏算了一个“不速之客”——抢票软件。抢票软件是一种基于浏览器的插件,利用机器的快速反应来帮助用户完成不断查询和刷新页面的动作,通过高频查询车次余票、自动填写个人信息、多账号同时操作等方式,从而比手动购票的用户更快完成购票流程。
苦于平台“无票”的旅客为了确保万无一失只能花钱求助抢票软件
由于缺乏对抢票软件造成的超大流量访问的充分预估,导致12306在大量抢票软件面前不堪一击——12306网站出现瘫痪情况,大量用户无法登录,页画刷新时间长达30分钟,订票付了款却无法购票。不少购票者无奈地怒斥12306网站“形同虚设”。
但是开弓没有回头箭,12306客票团队只能背水一战了:针对带宽不足的问题,12306客票团队当机立断,迅速将带宽由600兆上调至1000兆,不久又上调至1500兆;客票团队对网上购票数据进行监控与分析后发现,极个别用户在网上大量购票,单日购票总量竟超过100张。为保证购票公平,自1月5日起,12306客票团队对网上购票流程进行了调整,在用户购票成功后系统将强制用户退出,再次购票时需重新登录。
原铁道部还想到了邀请“外援”,当时所有网站中有丰富的“短时间内访问量剧增下不垮掉”经验的莫过于“双十一”搞得如火如荼的天猫和淘宝了。于是,阿里巴巴集团派出17名技术精英组成项目组,协助12306网站进行优化和改进。两支团队并肩作战,使12306网站的用户体验得到了极大地改善。系统的每日售票量由1月上旬的65万张提高到100万张以上,并于1月20日创造了119.2万张的日售票最高纪录。
天猫淘宝商城的“双11全球购物狂欢节”宣传广告霸屏上海徐家汇地铁站争夺用户人气流量IC Photo
这场上线不到一年的春运“极限测试”过后,互联网上也出现了关于12306架构的讨论和争议,当时的铁道部通过认真听取各方意见,也在认真梳理问题的原因,总结出主要是由于车票查询以及订单/电子客票业务分区处理能力不足,造成高峰期高并发访问请求下响应时间过长,加之各个业务分区未能很好进行隔离,导致系统由内至外产生“雪崩”效应,造成网站拥堵,影响用户的购票体验。
本文原文来自观察者网
