
说到春运,2月2日那天,中国铁道科学研究院的全路客票系统监控中心可真是热闹。你看,三块大屏幕上清晰地显示着2018年春运期间12306售票的实时状况、各个分控的情况以及排队的人数,现场气氛真是紧张又激动!视觉中国供图

在这个大厅里,窗帘紧闭,仿佛在守护着这里的秘密。上面挂着106块小屏幕,而三面巨大的显示屏正好悬挂在中央。中间的中国地图上,各大城市的连接点被密密麻麻的弧线串联起来。地面上,黑色的电缆像蛇一样蜿蜒,周围的服务器柜整齐地排列在墙边,红绿的指示灯在不断闪烁,显示器上的光线在金属表面反射,仿佛在述说着数据的故事。这里几乎没有人说话,只有键盘敲击声、机器风扇的嗡嗡声和硬盘忙碌的读写声交织在一起。挂钟的秒针滴答作响,屏幕上鲜红的数字在不断变换。在这一秒钟的时间里,12306的网上售票平台又成功售出了数百张火车票。这座大厅其实是中国铁道科学研究院(简称“铁科院”)的全路客票系统监控中心,它时刻关注着这个全球最大的铁路票务系统的运行状态。每年,系统会售出约30亿张火车票,而网上售票的比例在高峰时甚至超过了80%。监控大厅正见证着一年一度的春运大战。自从1月3日开始出售狗年春运的车票,已经有2.8亿张车票通过网络成功售出,占到所有渠道售票量的八成。在全国范围内,人们在使用12306时的各种请求、等待、满意或失望,都被这个平台实时捕捉着。它每天平均售出937万张火车票,系统接收的登录次数高达12404万次。在某个高峰日,系统的访问量竟然刷新到15777.8亿次,平均每秒达到了2700万次。你能不能买到票,究竟由什么决定呢?在网上,大家常说“秒抢”或者“秒没”,但其实很少有人了解,在你点击余票查询和最终结果之间,这段时间究竟发生了什么。在整个12306团队眼里,每一秒都是无比珍贵的,他们工作的节奏以“毫秒”为单位。“滴”,当某个地方的某个人轻轻一按屏幕,查票的请求信号就诞生了。这个信号从手机出发,飞驰在网络的海洋中,最终抵达铁科院的机房。那里,黑色的服务器像卫士一样矗立,电缆交错,功能分区有序。“滴”,这个查票请求信号在电路中流动,像一颗桌球撞击其他球一样,迅速传递到全国各地的客票交易系统,无论那里是雪山环绕的西藏,还是花香四溢的广州。这一过程比“双11”的秒杀还要复杂。商品的库存变化只是简单的数字加减,而余票的数量则因出发地和目的地的不同组合而实时变化,需要用到一套复杂的算法模型才能准确计算出来。2017年10月12日,12306上线了接续换乘功能,这让算法的要求更加严格,因为它需要考虑中转换乘站的因素。“滴”,计算结果就像翻山越海一样,被传回计算中心。同时,购票成功的人不断增加。余票信息是动态存储的,真是“瞬息万变”。铁科院电子所的副总工程师兼12306技术部主任单杏花也坦言,“有小概率”情况下,即使显示有余票,这些票在下一瞬间也可能就被买走了。“滴”,查询信号完成后,系统给出了响应,然后返回到用户的手机。接下来,用户选择车次,点击购买按钮,发出购买请求信号。这个信号与其他请求一起涌向系统,像一群乘客涌入购票大厅。速度至关重要,受网速和运气的影响。如果你来晚了,可能就只能在“大厅”外等着。为了避免订票者犹豫错失机会,“大厅”里一次性接收的请求信号会稍微超过余票数量。但在一定时间内,购票者和剩余票量会保持大致平衡,以确保公平。铁科院电子所的副所长朱建生表示,如果想让大厅里的每个“乘客”都能以最快速度购票,那就需要跟每个“乘客”数量相匹配的“放票窗口”——处理购票请求的线程,这样会产生巨大的计算成本。现在12306的网络售票采用的是,在“大厅”里开设多个窗口,前面排起长队。每个请求信号会根据算法被分配到某个窗口,大家有序排队,此时,很多人的手机上会显示“排队等待中”。这套流程的核心是“异步交易排队”技术,铁科院在这方面已经处于国内领先水平。“公平”是技术研发人员的基本原则。每个购票请求的进场顺序都会被系统记录,就像热门餐厅为等候就餐的食客发放排队号一样。无论后面的进程快慢,信号的位置都会被这个“号码牌”锁定,先到先得。“滴”,购票信号得到了响应,订单也随之产生。人们点击支付,完成交易。监控中心的大屏幕显示,2018年2月2日上午10点22分,系统对请求信号的平均响应时间最长不超过0.9秒,请求信号的平均等待时间则为1.8秒。朱建生告诉《中国青年报·中青在线》的记者,虽说这是平均值,但每个用户的情况不同,有的人点击购买后可能要等上八九秒甚至更久,而有的人则在不到1秒内就完成了整个交易,甚至没意识到经历了多么复杂的过程。持续40天的“双11”大战12306的技术团队曾和阿里研究院的淘宝团队交流,双方都有些感慨,“或许这是全国最懂彼此的两个技术团队了”。单杏花觉得,自己在春运时的工作感受和“双11”当晚的淘宝工程师很相似,只是他们只有一天,而我们却要面对40天的春运。火车出行是春运期间很多人的首选,也是性价比最高的选择。不容易受到天气影响,价格也相对适中。铁路系统内部曾考虑过大幅提高票价,以市场杠杆的方式降低需求量,但最终这个提议被搁置。2016年底,国家发改委发布了《铁路普通旅客列车运输定价成本监审办法(试行)》,将“公平性”放在了首位。2017年春运期间,全国铁路共发送旅客3.57亿人次,相当于搬动整个美国和加拿大的人口。网络购票逐渐成为主流,到2017年,12306平台的票务销售量已占全渠道的70%。监控大厅里悬挂着一张2018年春运网络售票的日历,每个数字都有A4纸那么大。除夕前两天、农历正月初五到初七是出行的高峰,特别用红色标出。最近,单杏花每天早晨六点半起床,儿子还在梦中,而北京的天空几乎一片漆黑。监控中心则是灯火通明,工作人员大多在早上七点网络售票开始前就到齐,直到晚上十一点多才下班,系统休息了,他们才得以休息。监控中心的屏幕实时显示着购票情况,最热门的请求队列会受到特别关注。一旦平均等待时间“出现异常”,工程师会迅速投入寻找并解决问题。这里的“异常”有时仅仅是与同级别队列的等待时间相差几秒,甚至零点几秒。朱建生表示,这里就像卫星发射中心一样,“春运之战”的火光在计算中心闪烁。中国铁路客票系统有两个计算中心,位于一条长走廊的两端。这两个中心能力相同,各自承担50%的系统任务,互不依赖。如果一个崩溃,另一个会立即接管,确保服务不受意外影响。同样,内存计算也是“分布式”的,也就是说同一项工作会分配给多台计算机去完成,单杏花解释道。12306的流量会根据旺季和淡季进行调整。如果完全依赖旺季对计算能力的需求来储备软硬件资源,淡季一来,许多资源就会闲置。因此,弹性计算架构应运而生,旺季时扩展,足够使用;淡季时收缩,节约资源。铁科院研发了自己的云系统,以应对平时的购票需求,但在春节等旺季时,他们仍然租用阿里云和腾讯云,以应付激增的计算量。“这些云服务只负责计算工作,用户信息依然保留在我们自己的‘云’上,以确保安全。”朱建生说道。单杏花最焦虑的时刻已经过去。2012年春运期间,当时的铁道部决定将20%的票源投放到12306平台进行互联网销售。“每天处理100万笔购票需求,应该足够了。”一位负责此项工作的前铁道部工作人员在2012年接受采访时说。谁也没想到,12306平台在高峰时期一天能售出119.2万张票,超出了设计的最大售票量20%。由于能力不足,当时的系统平均每秒只能成功售出几十张票,运算压力大的时候这个数字还会掉到10以下。那一年,“12306”成为多家主流媒体的“年度热词”,“卡顿”“失败”等词频繁出现在报道中。那些天,单杏花几乎把床搬到了实验室,每晚11点售票系统关闭后,团队连夜对系统进行优化和测试。六年过去了,12306网络售票平台的服务器数量从400台增加到了2000台,系统版本升级了六次,区域联网升级成全国联网,电子支付也被引入,电子客票的使用让刷身份证进站成为可能。铁路系统的许多不成文规定在网络时代被暴露无遗。少有人知道,一些车次的火车票正式发放后,还会进行一次小规模的发售。前者是该车次出发站和目的站的席位资源,后者则来自沿线各站的分配,这在行业内称为席位“复用”。12306网站5.0版本更新后,铁路系统与网上平台共享了“复用”资源。对于预售期票“秒光”的用户,临近出发时再刷刷网站,可能会发现有更多余票可买。在朱建生看来,12306的一年是被“春运”分成了两个部分。为这场年终“大考”所做的准备,几乎是全年的工作。每年春运结束后,便是下一年的备战开始。在刚刚过去的一年中,12306网站的日售票能力从1000万张提升到1500万张。动车组自动选座功能和接续乘车功能于2017年10月12日上线,微信支付功能实现不久,购票通知短信也能转为微信阅读,包括座位安排以及两地天气等细节一一显示。2017年7月17日,互联网订餐系统上线,乘客购票后可以通过12306下单,提前选择沿途某站的餐饮产品。当列车停靠那一站时,乘客可以在车内等着外卖送到。保持时间的准确性是整个系统的关键。“一般我们用手机App点外卖,十几分钟,迟了就算了。”单杏花说,“如果火车送餐晚了十几分钟,车都开走了。”12306今年8岁了,正在从一个新鲜的购票渠道,逐渐发展成一个更全面的“服务平台”。与机器抢票的较量12306初上线时并没有引起太多关注,那是在2010年,代表中国互联网的“.cn”正式写入全球互联网根域名系统。那时,中国互联网网民达到了4.57亿人,其中移动网民有3.03亿人。“互联网购票是一个不可逆转的潮流,必然会发生。”朱建生表示,近几年移动端的发展是最大的趋势,手机购票已占到互联网购票的70%。12306会继续发展,但不会成为唯一的铁路售票渠道。中国铁路总公司副总经理黄民表示,这是系统内部的共识。电话订票和线下窗口的购票方式将继续保留,总会有人跟不上时代步伐,他们的需求同样重要。另一方面,最沉重的沙粒也终将被时代潮流托起。长期以来,平衡成本与需求一直是铁路系统的一大难题。12306反馈的数据将作为重要参考,帮助铁路系统进行微调,从而在节省成本的同时,让每位焦急等待的人都能顺利踏上旅程。回到2009年,时任铁道部公安局抓获票贩子4069人,打掉了1672个倒票和假票团伙及窝点。媒体报道称,这些团伙有不少是来自农村的家庭,“倒票的收益比种地要高,判刑也值得。”新时代带来的新问题。单杏花表示,“刷票软件的确给我们的系统带来了很大的压力。”机器每秒钟可发送成百上千的请求,大幅增加了系统的任务量,也无形中增加了其他不依赖软件的用户购票难度。除了隐秘的票贩子外,一些知名旅游服务平台也相继推出了抢票软件,用户支付一定费用,就能更快速、更稳定地购买车票。虽然这引起了不少争议,但也有评论认为这是火车票市场的自我调节,有些人愿意用更高的价格换取更多的机会。12306努力在海量请求中区分人类用户和机器。2015年,许多用户发现自己在12306购票时需要通过一个包含8张图片的关卡,他们需要从中找出“花生”或“松鼠”等指定物品。在后来的采访中,12306团队将其视为“保障公平的有效手段”,因为在当时,“看图识物”的任务几乎只有人类能解决。他们没想到,这一措施在网络上迅速流行。至今,朱建生几乎每次接受采访时都要解释:“网上很多图片是经过PS处理的。”那些被网友转发数万次的图片中,包括从一堆锥子脸里找到某个网红。到2018年春运时,能够取代图片验证码的验证方法尚未问世。12306表示会尽量减少这类验证码的出现,让超过八成的用户不必与之打交道。与“机器抢票”的较量依然在继续。监控中心的一面大屏幕实时显示着风险控制的情况。购票请求的饼图上,代表机器刷票“风险”的红色和正常请求的蓝色几乎各占一半。11位IP数字在闪动,它们都是系统监测到的风险源。单杏花表示,某一时间内,请求数超过一定范围的IP地址或设备,系统会记录并限制其访问,甚至直接拦截。这意味着,如果你的设备或IP有过使用抢票软件的“黑历史”,那么在通过正常渠道购票时可能会遇到更大的困难。“我们只能尽量限制。”对这个话题,单杏花显得谨慎,但他也表示:“今年抢票软件的使用难度将会增大。”不断流入的海量数据汇聚成中国“春节人口迁徙图”。“北京”“上海”“广州”是这张图上最显眼的三点,像光源一样发射出千万条轨迹,指向隐匿在中国地图上的某个小小车站。记者 王梦影 周伟











一秒钟能卖出那么多票,难道真的是秒杀吗?还是有内幕?
我去年春运期间用12306买票,确实很难,感觉真的要有运气才行。
我在春运期间也遇到过抢票的情况,确实感觉像是在和机器赛跑,有时明明看到余票,结果却买不到。
我有一次在春运期间抢票,明明网络很快,结果还是没买到票,真是无奈。
春运期间的抢票压力简直是太大了,有人知道有什么小技巧吗?
抢票的复杂过程听起来真让人心惊,难怪总是买不到票,大家有什么经验分享吗?