12306频频崩溃,双11电商平台却畅通无阻,真的是12306不给力吗?

前一段时间12306的系统又崩溃了,很多人愤愤不平,明明很简单的一个卖票软件怎么那么多年就是做不好呢?看看人家微信、QQ每天都有几亿人在线聊天,双11期间的电商平台更是在短时间内面临着全中国网购人群的流量压力,这都可以畅通无阻,为什么12306就偏偏那么不给力呢?

对此我专门咨询了我的一个工程师朋友,发现事实并不是大家所想的这样。可以毫不夸张地说,12306在春运期间的运行维护难度与需要面临的数据压力远非双11各大电商平台能比,实际上十个双11的流量与算法压力恐怕都抵不过一个春运。下面我们来详细分析一下。

一、业务模式的巨大区别

对于电商平台来讲,就算双11当日流量巨大也不过是单纯的纯线上业务,所有用户都是在APP或网页端下单,这个数据是闭环的;

而对于12306来讲则分为线上、线下两大块。要知道春运期间的返乡人员中有很大一部分是不会选择线上购票的,尤其是众多外来务工人员,他们中有很多人因为不会使用线上支付流程而不得不在火车站彻夜排队。也就是说我们在火车站售票处、售票机里购买的每张车票也会计入整个12306的数据系统。从业务模式上讲,12306的运行难度是远远大于各大电商平台的。

二、12306具有更强的不确定性且不可预测

对于电商平台来讲,双11期间的活动其实是在之前很长一段时间就已经开始了的。大量用户提前领券、领红包、交定金,商家也会进行提前锁货与补货。说白了,双11期间的大部分成交额是在电商节之前的一段时间内就已经预测完成了的,而双11当天只是完成结算罢了;

12306则不然,因为我们永远都无法预测到底有多少人在哪一天会去哪里。举个例子,如果你是一名北漂的南京人,在春运期间如果买不到直接从北京回南京的票,但为了能及时回家你可能会选择先从北京坐车去天津再从天津回南京;也可能先坐车去济南再从济南回南京;你甚至可能坐飞机去上海,再从上海坐车回南京等等等等。12306需要在任何时间接受任何人的随机行程以及线路变化,可以说春运期间的12306所需要面对的是世界上最随机的用户意愿与最复杂的路径变化。

三、业务流程所造成的负担不可同日而语

对于电商平台来讲,用户所要进行的操作无非是:浏览、比价、下单、物流、收货、售后。而就算是商品次日到达,平台方仍然有24小时的处理时间,数据处理压力相对较小。而现在普遍使用的异步处理方法又进一步减缓了电商平台压力,换言之,没有次日送达承诺的话平台方就可以在用户付款后再慢慢处理物流订单与售后服务。这就好比你又要烧开水又想看电视剧,这时你就可以先把水烧上然后再打开电视。

而12306则需要在第一时间把所有用户下单、选座、付款、锁票、出票等操作一次性处理完成,这里面没有缓冲地带,需要直面基数庞大的用户随机流量。如果说1亿用户同时在线需要4个步骤完成交易的话,电商平台可以逐步逐日处理,每一步解决1亿流量,慢慢完成任务;而12306则需要快速地直接处理掉4亿流量。

四、库存管理的算量悬殊

对于电商平台来讲,对于交易货品库存无非也就是增、减、查、改四个操作,用户付款库存就减1,用户退货或商家补货就加1,算法简单;

而12306则需要处理用户们随时随地上车、随时随地下车的操作,算法复杂到令人崩溃。拿北京到上海的高铁举例子,北京与上海之间有21个小站,12306需要把用户上下车的所有可能性都进行计算:

假如你购买的是北京到上海的票,那么沿途所有站点库存都要减1;

假如你购买的是北京到天津的票,那么北京到天津的票要减1,天津到上海的票保持不变;

假如你购买的是天津到徐州的票,那么北京到天津的票不变,天津到徐州的票减1,徐州到上海的票不变;

而且我们还忽略了一个很常规的操作,那就是补票,列车上的每一次线下补票也需要在第一时间录入系统,进行计算与查重。

也就是说我们每一次关于个人行程的微小调整都将对整个行程造成影响,每出一张票,12306都需要完成巨量运算。看完这些你应该就知道12306每天要面临的算法有多么恐怖了吧?

五、天差地别的流量基数

很多人认为双11就是我国互联网流量的巅峰时刻了,其实并不是。如果单纯比流量,恐怕任何公司的任何业务在12306面前都是弟弟。对于电商平台来讲,大部分用户都是不会进行重复点击的,抢不到商品顶多再多点几下就退出页面了;

而12306则不然,所有用户几乎都在实时刷新界面,每一次刷新都需要12306跑遍所有数据库,进行海量的数据交换来同步余票信息。更何况还有很多用户是使用抢票软件的,而抢票软件的工作原理就是使用机器不停地读取12306的数据接口,一个软件可以在一秒内完成几百甚至上千次的刷新,一个人使用软件就可以造成几千人同时刷新的数据压力。中国各大抢票软件的用户基数目前已经达到了千万级别,一次春运,几百亿的流量消耗都绰绰有余。说到这里,大家大概就都明白12306每天的负载量到底有多大了吧。

世界上没有任何一个国家或公司完成过类似我国春运数以百亿级的即时交易流量挑战。其实大家真的没必要责怪12306,因为它真的每一天、每一秒都在“拿命去拼”。最后祝各位都可以抢到回家的车票~

推荐阅读更多精彩内容