程序员也疑惑了:12306是不是世上最复杂的系统?

(83) 2024-07-21 13:01:03

今年春节比以往来得早了些,春运火车票早已开始抢购。每年这个时候,抢车票就是最大的难题,为此也有人调侃称,年底正是检验12306的重要时期。面对12306的被吐槽我们早已习惯,很多人都认为12306系统太脆弱。

包括12306 APP的使用体验也备受吐槽,甚至有人质疑:“国家这么多优秀程序员,为什么就不能优化一下App,逢年过节就崩,真的是糟心。”一些网友纷纷表示尽管它是官网,但抢票能力和使用体验真的不如第三方售票软件。

这不,前几日,12306就又出现故障了,车次加载失败、购买不了票或始终卡在候补订单支付界面等。

按照12306官方的回应,这可能与抢票人数过多,流量过大有关。客服给的建议是:软件卸载后重新安装,然后切换网络耐心等待。

还有网友收到客服下列回应“我们官方网站主要是有一个候补功能,这是第三方抢票软件暂时没有的功能,相关部分的技术问题我们就不是很清楚了。”

值得一提的是,有着大量程序员聚集的V2EX在近日出了个热帖,那就是讨论“12306是不是现在世界上业务逻辑最复杂的系统之一?”有人指出12306并发量很大,不像天猫双十一是短时间并发,12306是一出票就是双十一。

程序员也疑惑了:12306是不是世上最复杂的系统? (https://mushiming.com/)  第1张

我们可以先来看组数据:

自本月12日春运售票启动以来,全国铁路已累计发售车票1.75亿张,每天的发售量都在1000万张以上,其中本月23日、24日两天,车票发售票均在1500万张以上,超过了目前12306网站的单日售票能力。高峰时每秒售票量达700张,网页浏览量超过1500亿次/天。

据了解,为确保旅客顺利购票,铁路部门正在着手对12306网站售票系统进行优化和扩容。

其实相比往年,12306网站崩溃已经算是个“稀罕事”了,但每出现一次仍会招致大量不满。而程序员此时跳出来抛出这个话题难免被人认为有“洗白”嫌疑。

程序员自然是最了解12306系统为何这么复杂的,但对普通人来说根本不了解12306背后需要什么样的技术和投入。前几年甚至还有不少人吐槽12306购票系统就是大学生外包水平。言外之意,12306很简单,现在大家抢不到完全是技术不行、不肯投入。

有人疑惑,为什么双11的数据同样巨大,可淘宝虽然卡,却没有崩?就技术水平而言,12306系统的技术难度绝不在淘宝双11系统之下。

今年10月份,12306技术部主任单杏芳也曾介绍,12306售票系统已经成为全球最大的票务交易系统,中国人民彻夜排队买票已经成为历史。

单杏芳表示,12306曾经面临最大的问题是系统拥堵,像余票查询这样一个看似简单的功能,其实是经过了技术攻克,才达到了如今的高效运行。

她表示,铁路余票计算是非常复杂的,因为我们一趟列车有多个停靠站,它是一个动态复杂计算的过程,相比简单的商品库存简单加减要复杂得多,所以如果计算慢,系统可能就会忙,就会堵。所以我们研发了分布式的内存计算的余票计算基数,让余票计算变得非常高效。

与此同时,单杏花及其团队还研发了异步交易排队系统,这种系统采用售取分离、读写分离的核心系统架构等多种技术,为12306售票系统提供技术支撑。

官方还表示,未来将进一步利用“云大物智移区加”这类新一代信息技术和资源逐步完善铁路12306订票系统更进一步优化旅客的出行体验。

其实,时间如果回溯12306刚上线的那几年,别说抢票,很多人连网站都登不上去。这就要从网络购票的发展历程说起了。

经网上查询资料可知,早在2000年,北京就曾尝试搭建网络订票系统,上线了“首铁在线”。当时黄牛买票也得排队,大家对于网络购票的需求几乎没有,并且大部分人网速只有可怜的100k。即便如此,一个“五一”小长假,仍使得首铁在线的系统瘫痪掉。经过一系列抢修之后,首铁在线在“正常和瘫痪之间”坚持了8年。

程序员也疑惑了:12306是不是世上最复杂的系统? (https://mushiming.com/)  第2张

2008年春运前夕,首铁在线宣布放弃网络订票业务,只提供部分信息查询服务。理由是:网站登录人员过多,造成服务器瘫痪。

此后,上海在2009年上线了一套网络购票系统,并且提供送票上门服务。遗憾的是,这套系统上线仅一天,就因为系统故障关闭升级,此后再无下文。

程序员也疑惑了:12306是不是世上最复杂的系统? (https://mushiming.com/)  第3张

2011年6月1日,在民众对网络购票的极大需求与期盼中,12306网站正式上线。然而2012年春运,也就是12306面临的第一次大考,结果并未令人满意。

服务器几度崩溃,很多人进不了网页;好不容易进去了,要么就刷不出车次信息要么就点击不了购票按钮;甚至还有人出现了抢到票无法支付,或者支付后拿不到票的窘境。以至不少网友开贴吐槽:没爬不上的山,只有登不上的12306。

第一次春运首秀,暴露出12306太多技术上的不足。而此后数年的春运期间,12306都会很稳定地告诉我们,想如愿抢到票不容易。

例如在2013年春运来临的前几日,12306在3天之内前后发出两次公告称,因硬件设备故障/机房空调系统故障,正组织抢修,暂停互联网售票服务。

程序员也疑惑了:12306是不是世上最复杂的系统? (https://mushiming.com/)  第4张

有意思的是,在这场春运中12306竟然没有出现大规模的卡顿。但在此后2014年春运时彻底瘫痪,毕竟通过互联网买火车票的旅客越来越多了,而且会呈逐年增长的趋势。

终于在2015年,12306系统迎来了与阿里云的合作。这一年春运期间,阿里云将承担12306系统中75%的流量(车票查询业务)。用户的购票体验也提升不少。

阿里云接管12306的车票查询业务之后,其系统越来越稳定。不过后面出现的奇葩验证又成为大家心中的“噩梦”。直到2018年才将其陆续下线。

程序员也疑惑了:12306是不是世上最复杂的系统? (https://mushiming.com/)  第5张

自2011年网站运行以来,12306一直承受着旅客的不满和埋怨,好在12306这些年的确方便了用户购票,也减轻各大火车站售票处的压力,走来的数十年间,大家对它是“又爱又恨”。就拿今年来说,春运期间12306每天都在超负荷运转,结合前文中所给出的数据,如此庞大的浏览量和客流量,也折射出网站背后工作人员的辛苦付出,对此大家也多一些理解和包容吧。

当然12306也在逐步完善存在的漏洞,调整更新着服务模式,包括打击黄牛,近年采取了“候补购票”的方式来遏制利用插件盈利的第三方软件等。尽管互联网上吐槽声一片,但我们可以看出,铁路总公司还是在努力做好票务工作的,只是在网络信息技术面前的确还有很长的路要走。那么你买到回家的票了吗****?

THE END

发表回复