为什么耗资数亿的12306一直都非常难用?
2014年12月,12306预售期由20天延长至60天。 2015年,12306关于购票、退票和改签时间的相关规定开始进行调整。 2016年,12306网站新增“余票动态信
2014年12月,12306预售期由20天延长至60天。
2015年,12306关于购票、退票和改签时间的相关规定开始进行调整。
2016年,12306网站新增“余票动态信息栏目”,手机APP新增列车正晚点查询服务。
2017年11月,12306网站微信支付功能上线试运行。
直到今天,12306仍在功能迭代和系统升级中持续的“缝缝补补”。
为何总要“缝缝补补”?
如果将春运售票与淘宝等电商平台“双11”订单业务挑战进行相比的话,前者在业务复杂性上更具挑战性,而后者更多的体现在业务规模上。
比如,乘客购买一张车票,理论上这一区间票会同时存在多个站点,而乘客每买一张车票,都基本上是不同区间车票的订单。如果再加上订票者的“学生”或“成人”信息,选择上下铺、优选号等选择,那么无论查票、出票、支付等逻辑上,都要比电商平台上订单系统复杂得多。
第一个特点就是并发非常高。
根据官方数据显示,12306网站PV(页面浏览量)目前每天都超过400亿次,这个数字远远高于淘宝双11时同时访问的人数。因为,除了有真正购买需求的全国网民之外,同时还有机器人、订票机器在大量的进行刷新,并发次数非常高,包括优化数据库访问、分布式、缓存、负载均衡等技术挑战摆在眼前,都无法解决服务器高负载的问题。
第二特点就是峰值不均匀。
想必大家都体验过,临近年跟,摩拳擦掌准备好高速网络同时在页面和手机APP上进行手动刷票,但几乎就在一瞬间,有座的没座的,车票早已售空。比如,涉及到河南、安徽、四川、广东等地的火车线路时,基本每一个订单都会被疯狂抢购,峰值极为不均。
相比淘宝双11来说,某些爆款页面因为服务器上突然产生高流量负载,出现了暂时无法响应或下单失败的情况仍是少数。
另外一个特点就是SKU。
SKU即最小管理库存。在淘宝双11时,多数人都经历过当天下单,但往往不会当天发货而是高峰过去之后再发货的情况。这也就是淘宝SKU数量的问题,也就是说,出售一款产品,目前现存1000件,但同时2000人下单时,商家可先出售1000件,再随后补货上架。也就是说实际的SKU数量是2000甚至按照客户订单来完成的。
而火车票,因为订票实名制,分配座位都是对号入座的。每个时段每趟车次每一个座位,系统只能售卖一张。而实际上,无论你是不是身处春运高峰时期,全国13亿人次庞大的流动需求,迫使你购买的火车票最小库存SKU永远只有1个。
实际上,在互联网售票之前,网点售票已实施多年。也就是说,在铁路售票系统内部也是个庞大且复杂的跨地域系统进行支撑,包括涉及的业务逻辑、软硬件供应商、版本与维护协议等方面。
因此,有着严重历史包袱的12306,在诞生之初并非是为了重构原有的售票系统,更多是为了缓解当时日益紧张的售票系统压力,首先仍是原有的系统上做web前端。这才是根本上的问题。
正如总有人会豪言,自己能设计出一个比12306更好更廉价的购票系统。那么,关键的一点是,面对此时此刻的问题,你又会如何处理呢?
本文基于悟空问答“为什么12306手机客户端如此脆弱?”内容整理,来源链接:
https://www.wukong.com/question/6372701612640567554/
本文基于悟空问答“为什么12306手机客户端如此脆弱?”内容整理,来源链接:
https://www.wukong.com/question/6372701612640567554/
————— END —————
马化腾、李彦宏、雷军,程序员国服三强谁的编程能力最牛?返回搜狐,查看更多