技术揭秘12306购票平台崩溃原因:平台已接近技术极限

集群架构 靠谱运维 1163℃ 0评论

又是一年春节到来时,大家都知道,中国的春节最大的一件盛事是,回家过年,要回家,就要乘坐交通工具,其中火车是首选,大家每年都会为抢春运回家车票犯愁,12月23日,大量网友发布评论,称12306出现车次加载失败、购买不了票或卡在候补订单支付界面等问题。

b434047101e4495a83f3a4c22ced22ad

对此,根据12306客服表示,如果一直显示转圈圈在加载当中,可能是操作旅客过多,或者是系统繁忙造成的。可以先尝试把软件卸载重新安装,然后切换网络。也就是说,此问题无法解决,只能等待,错过高峰期,因为过于强大的流量导致了12306服务器的崩溃。

根据中国铁路公布的官方抢票攻略,铁路售票高峰期为2019年12月19日至12月25日(发售腊月廿三到廿九的车票),预计互联网单日售票量将突破1400万张。

11aeec34f7a244f2a83d5ed928ce1e80

对此,很多人,特别是it行业搞技术的同行们,都认为12306的购票系统做的太烂了,每年抢票都出问题,作为一个互联网的老码农,之前也听过很多技术大牛谈12306,很多人都对“12306”嗤之以鼻,觉得他们做得太烂了,认为自己能带队花几百万元用半年时间做个好的出来。

当真是这样吗,我自己也曾经尝试思考过12306平台的构建思路,以及如何构建数据模型,思考如何设计库存等技术细节。此时发现“12306”的库存复杂性比淘宝、京东高很多倍,运算量也大很多倍。传统的分布式数据库、缓存、负载均衡技术并不能很好的满足“12306”的需求。

此外,12306的流量高峰是在春运期间,其它时间,流量并不大,12306平常一天的PV(page views)值大约是在 3000万到 3500万左右, 但在春运高峰日期间PV值可达到300亿以上,流量增加1000多倍,这样海量的请求,假如不能在短时间内动态调整网络带宽或增加服务器数量,就会造成网络阻塞或是服务器性能无法满足要求,甚至使整个系统不稳定。

针对这种需求,要真正解决“高流量,高并发“的难题,就需要从软件和应用系统层面出发,唯有实现“可扩展的应用云平台架构”,灵活和快速热部署的机制,才是真正解决高并发访问的根本。

“利用云计算资源“,“按需及时扩充“和”快速调整“,这几个字眼是12306改造的精神,其核心就是要建立一个从下到上全面“可伸缩扩展的云平台”。底层的硬件架构要支持可伸缩扩展,上层的应用系统架构也需要支持可伸缩扩展。

目前的12306已经实现了资源弹性机制,整个平台实现分布式部署,例如,余票查询子系统独立于原来的大系统部署到公有云上,同时再将此子系统一分为二,将另一部分服务器部署在私有云的数据中心。即按业务需求随时部署所需要的资源,来解决高并发的难题。

12306从2011年下半年开始上线,到现在2019年,已经平稳运行了8年了,虽然每年都在出问题,但整个系统的性能已经趋于稳定,大家如果每年都在网上订票的话,可以深切感受到,平台其实越来越健壮了,那么为什么8年了,还会出现问题呢,真的是12306的技术人员水平不行吗,其实完全不是这样的。

大家都曾经参与过天猫双11的秒杀购物,在秒杀高峰期,大家应该看到过你提交订单后,系统告诉你排队的人太多,挤不进去,并提示多少秒后重试,这其实就是天猫的秒杀系统出问题了,因为秒杀人太多,天猫平台支撑不了这么大流量了,所以给了你这个提示,双11已经持续10多年了,如果你每年都在秒杀购物,你会发现,在凌晨开启秒杀那一刻,都会出现秒杀阻塞现象,可能这种几率会降低,但是每年都存在,这个问题,难道天猫解决不了吗?

天猫是什么技术水平呢,天猫有至少4000以上名技术人员,至少6万台服务器,以天猫这样的技术水平,都还不能做到秒杀时让每个用户都没有拥挤感,为什么?

原因很简单,尊重物理原理,一台服务器一秒钟能承受的计算量是有极限的,任你怎么优化,采用多高效的算法和编程语言,都突破不了某个极限,比方说汽车发动机驱动的F1赛车至今也不能突破400公里的时速。

因此,我觉着这个问题,空谈技术无益,因为技术手段并非万能药,一个问题的出现是多方面原因,以阿里的技术能力都无法解决这个问题,更何况是12306呢,天猫技术的确比“12306”强大很多倍,天猫现在的系统也是花了10倍于“12306”的钱、时间和人力才做起来的。天猫都解决不了的问题,要求12306去解决,也不现实。

可能有人要说了,既然软件、技术已经达到极限,那就增加硬件呗,显然这种思路也不现实,刚才说了,12306平台的流量集中在春运期间,平时流量根本不大,就比如,“十一”黄金周的时候,北京主城区到八达岭长城的路堵得严严实实,但不能因为黄金周的高峰,就把这段路修成长安街那样10车道的高速公路,因为黄金周,花费天文数字修一段路,那平时这个路做什么,来晒粮食吗?

其实12306早已意识到了这个问题,所以整个购票平台采用分布式部署,公有云、私有云结合使用的方式,采用云部署的一个好处是,可以弹性增加硬件资源,这样即能保证春运期间的高流量,高并发场景,也能最大限度的节省成本。

总上所述,对于12306平台出现的问题,其实大家不用那么在意,因为就目前来说,“12306”已接近技术极限,现在“12306”的基本策略是兵来将挡、水来土掩,对出现的各种的问题都是采取事后措施补救,“应当加强技术建设,填补漏洞,提前做好各种应急预案”。因为12306这个庞然大物,是世界上任何一个国家都没有,因此无经验借鉴,但不可否认,12306正在一步步走向跟稳定,更完善的道路。

转载请注明:靠谱运维 » 技术揭秘12306购票平台崩溃原因:平台已接近技术极限

喜欢 (4)or分享 (0)
发表我的评论
取消评论

表情