“崩溃的”12306

春运,对12306来说是一场苛刻的考试。

每天上亿人次的流量,满负荷运行,各种吐槽不断。

“崩溃的”12306

自带流量还没上限

别家的互联网产品永远都在担心访问量和使用率不够,而12306自打出生那天起就自带流量,运营者根本不用担心流量KPI不达标。

2014年1月9日,因为用户过多导致12306网站彻底瘫痪,报错的蓝色窗口让线上购票旅客破口大骂。根据当年新浪的调查,87.9%的网友表示12306崩溃影响到了正常购票。于是,12306的带宽从最初的400M带宽,加到了1.5G。

很多人感觉,淘宝等电商平台的流量也很大,尤其每年双十一购物节的流量也十分恐怖,那为何12306的体验永远就这么不上档次呢?甚至公众认为,只要把马云召唤来,问题就迎刃而解了。

事实上马云2015年就来了。那一年马云的技术团队利用阿里云分流了75%的12306火车票查询业务,请注意,仅仅是查询上的分流,这帮助购票系统平稳度过了流量高峰。而这已经是马云能够做到最好的了。

“崩溃的”12306

▲ 崩溃的12306网站

奇葩验证

好不容易大家不怎么吐槽打开慢了,动态验证码又成了2014年春运时的新问题。

最开始的验证码形式是静态的,但那些年为了抢票,各种浏览器和插件纷纷出炉,导致12306的静态验证码被轻易识别,很多人事实上都在插队购票了。

“崩溃的”12306

▲ 网友恶搞的12306的奇葩验证码

于是,12306的技术人员便把静态码换成了动态。虽然网络插队现象被杜绝了,可公众识别验证码的难度也增加了。

公众的吐槽仍在继续,不得已12306又做了优化调整,将动态验证码更换为增加了底纹或干扰线的新版静态验证码,这样既大大降低了旅客的识别难度,同时也保持了对自动识别软件的有效防控。

“崩溃的”12306

▲ 排长队、窗口式的购票方式已经逐渐被网络购票替代

之后,12306的验证码又进行了一轮升级变成了图片。这进一步预防和杜绝了抢票软件对公平购票环境的破坏。

吐槽简单,可公众不知道,12306的系统维护起来究竟有多难。

“崩溃的”12306

海量数据只是入门

12306在春运期间的运行维护难度,与需要面临的数据压力远非双11各大电商平台能比,实际上十个双11的流量与算法压力恐怕都抵不过一个春运。根据统计,

12306官网全天提供余票查询服务为720亿次,而12306网站日页面浏览量高达813.4亿。

单单这些人次的数据,估计就让大部分程序员绝望了。可这,还不是12306系统面临的最高难度操作。

12306维护起来的难度,估计比登天还难。

“崩溃的”12306

很多人总是拿电商平台或者我们社交平台的数据和12306做比对,这实际上是耍流氓。

淘宝等电商平台的数据虽然也很大,但全部的数据都是线上的。网民从下单到店铺发货再到快递的精准投放,都是在一个闭环的池子里分发运行。商品从仓库分发到消费者手里,是一个预先设定好了时间段甚至时间点的固定过程。

而12306分发车票的过程就完全不一样了。网络购票和线下购票共享着同一个票池,而从这个池子里拿票的过程,是线上线下随时和不定时的过程。有人在网上买一张票,得实时更新数据,同样去窗口买了一张票,变化之后的数据也得及时反馈到总池里。而且,人们在各地购票的时间以及目的地都不一样,但总池里的数据得随时精准不差的输送到每一个购票的终端(或是手机上或是购票窗口)。单凭这一点,其分发难度就不知比电商货物的分发难了多少数量级了。

电商的双十一充其量就玩个加减乘除,而12306玩的是大学里的高数啊。

“崩溃的”12306

你以为这样的难度就接近天花板了?错!这才刚刚入门。

未知性让你不知道问题在哪儿

就以每年的剁手节来说,流量一年比一年多,但静下心来细想,这不就是一个拿钱排队买东西的简单过程吗,而且买东西的时间段还是设定好的,不管人有多少,只要线上加大带宽维持好秩序,一切都能有条不紊的进行。

电商购物的整个参与过程,是有预见性并且可控的。这样一来即便会出现各种问题,也能大概预测到问题会出现在什么地方。

而12306的运行系统呢,它就是一个不知道多少人参与、不知道从哪儿购票、不知道何时购票、不知道购票人是终点下车还是中途下车、不知道中途下车后空出来的票有没有人再卖走的无数种的不知道过程。

“崩溃的”12306

整个过程都是不可知的,那么出现什么问题、在哪里出现问题、问题出现的频率,这些统统也不可知。

举例来说,广州到郑州,一个人可以坐高铁,也可以坐普快,也可以坐普快里的直达。而这几种车,沿途所经过的站点都是8到15个左右。真正的考验要来了。他买到终点站了,还是在沿途下了?如果是买到终点站了,那这张票今天也就不用被折腾了。假如是中途下车,人会在哪个站点下,下车后空出来的这张票是被剩下了?还是会被沿途上车的人捡漏了?如果是再次被售出,沿途还剩几个站,就会有几种可能。

“崩溃的”12306

▲ 广州到郑州的车次

而且,这还没有算上时间。假如买的是中途的票,那这张票在起点站售出的同时,从下车的那个站点算起,这张票又可以被售出。而且,这张票既得能预售,也得保证在开车前一个小时,在没被人买到的情况下,能够把这个精准的信息展示给所有人,以便在它符合售出的站点以及时间段内,随时卖给需要的人。

看看吧,从广州到郑州这一段,多种买票的可能再加上不能确定的时间,两者结合起来就会让一张火车票的售出过程产生上百种的可能性。

而且,这仅仅是一个人一条线路的出行计划。想想广州有多少外地人,想想从广州发到全国各地的车次又有多少。即便是这么多人,这么多车次,也仅仅是广州一个站点的售出规模。而全国只要是二级站以上的火车站点,其车票被售出的不可知性,都是如此。

所以,接续换乘对12306最具考验。再以北京到哈尔滨为例,可以从沈阳、长春、四平等多地换乘,换乘的车次也很多,看起来简单,但是搭配的组合可能上百种。看似一次查询,但实际上内部要进行上千次的计算。

“崩溃的”12306

N次方的可能性搅合在一起,你是不是已经懵逼了?醒醒,整个购票的过程需要一次性算完,不能有任何中断。

集中式呈现挤爆你

网购的流量虽然大而集中,但除了是简单的单线条之外,其整个过程还是分节点的。网友下单,店铺可以分时段处理,如果忙不过来,停一两天发货无非也就是收到个差评罢了。

“崩溃的”12306

即使是比较快的同城网购,货物从下单到送达,也得24小时左右。这种分时段和分节点的业务形式,无形中把线上的海量数据分成了一截又一截的可操作时间段,整个过程不过是加和减的重复。一旦时间拉长,容错率也就大了。

可我们买票呢,无论是打开12306网站还是APP,都想着一快再快,最好能一气呵成。上亿人次出行的可能性,12306系统要随时完成数据信息的准确呈现,下单之后还要随时完成票的拣选,把票发售出去,退票后要回收再整合呈现,然后再不断重复这个过程。

没有半秒的缓冲时间,不能说我早上下了单,明天早上再给我出票信息。

“崩溃的”12306

你品,你细品。

如果说网购的拥堵只是人数的增加,那12306系统的拥堵就是,上亿人次加上N次方可能性的不断重复计算,这还没算上抢票软件一秒钟刷几百次的数据压力。当这么多人和这么多的可能性叠加在一起,以随时算随时出结果的形式不断重复时,整个过程产生的数据缓存,估计能让大多数国家的网络服务器直接瘫痪吧。

再者,火车票的出售是实名加限购的形式,为了防止一个身份信息在一个时间段内集中购票,内部服务器理论上就得缓存每个用户的身份信息,以便在限购的拦截中提高精准度。而这又增加了数据运算量。

现时的系统,每天后半夜都要维护。试想,12306系统真要是白天黑夜连轴转,估计直接就爆了。

海量数据挤爆,回家心切。

多少按键敲击,一夜白头。

“崩溃的”12306

▲ 网络搞笑图片

还在2012年12306系统刚运行之初,就曾面向全球公开招标,钱给够,只要能让系统稳定运行就行。竞标的公司不少,可最终没外人敢接这个大活儿。

十几亿的人口基数在这里摆着,即便一些国外的公司有先进的技术,面对这种体量的系统,他们也是束手无策。

最终还是我们自己的技术,不断维护和更新着它。

这个系统和背后维护它的人,真的是拿命在奋斗了。

12306系统的春运重心

可能有人会有疑问,既然涉及到国计民生,何不就不计成本的实施技术攻关,彻底提升系统的稳定性和用户体验呢。

事实上,12306系统的更新是有针对性的。

首先,春节期间购票坐火车是刚需,这就导致公众对12306的期许不会有任何打折扣的余地。建议、吐槽甚至谩骂,倒逼着技术人员不断进行调整优化和升级。

12306系统每年都在更新,比如带宽提速,选座和候补票功能的先后增加。这些技术和功能上的升级,都能切实提升用户的使用体验。

其次,春运的供需矛盾,是乘客和车的矛盾,12306系统只是一个中介,它不可能像抢票软件那样帮人插队。再者,我国每年新增的线路和车次,都在逐步的缓解供需矛盾。

“崩溃的”12306

▲ 候补票新功能

如今,12306已能够承受每日最高400亿次的点击,最高峰时日售票接近千万张。售票压力的缓解不仅因为系统扩容,背后更有我国高铁网的快速延伸。

最后我们应该看到,春运的客流量是集中时段的短期爆发增长,并非常态。12306的系统如果不计成本的投入运营,那在其他时间段的客流平缓期,就是一种资源上的浪费。何况如今的12306系统,在非春运时段的购票体验都已经完全满足了公众的出行。所以,针对系统的技术投入也是紧跟春运,与大客流对接的。

春运为重心,平常时期尽心维护和运营,用不多的钱满足了大部分人的购票出行,这已经是神级操作了。

“崩溃的”12306

每年的春运都是一场“战役“,已经越来越常态化。为了提升公众的购票体验,技术人员的每一次付出,都能提高公众的单次购票率。而网络购票也从2011年最初的11.1%,提升到现在的接近百分之百,从根本上改变了购票的形态,方便了民众的购票需求。

所以,在你我吐槽12306使用体验不好的时候,也应该对他们的辛苦付出予以理解和支持。

是12306和背后的运营人员,让每一个身处异乡的人,尽可能的都买到了回家的车票。


分享到:


相關文章: