专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

12306的购票系统与淘宝双十一的秒杀系统相比谁更强大_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 3:57:28       共计:3594 浏览

12306的购票系统与淘宝双十一的秒杀系统相比谁更强大?

12306可以说是真正意义上的国民应用,然而因为长期以来相对糟糕的界面设计,以及比较差的用户体验,一直备受吐槽,根本原因还是购票难的问题。但是作为一家优秀的互联网企业,阿里巴巴却搞定了双十一,在用户眼里形成了极佳的用户口碑,一度阿里云更是成为12306的官方技术支持,那么淘宝的技术就真的比12306更强大?当然,答案是否定的,就算是现在来看,也没有任何一家科技公司能够解决12306的难题,阿里巴巴当然也不能,12306的技术难度可能是世界上级别最高的技术高峰之一。

1. 首先来看看12306存在的诸多运营问题

举个简单的例子,为什么电子商务公司最具备云计算基因?难道仅仅是因为amazon作为云计算的开创者是一家电子商务公司的原因?主要原因就是因为类似于平常的并发体量与双十一具备极大的差距,那么双十一需要即大规模的硬件资源,平时就会有极大的闲置。而铁路资源跟这点有非常的类似,平时的客流量较少,但是到了节假日就会客流量暴增,但是铁路资源不可能因为节假日的存在进行大规模的增加铁路资源,最多只能进行一些微调,否则资源充足的条件下,平时就会造成极大的资源浪费。所以相对合理的资源搭配最终结果便是造成了节假日,尤其是年底春运的时候购票难的根本原因。

除此之外,虽然互联网购票因为减少了人为干预,极大的减少了黄牛党的存在,但是另一方面说,也是极大的方便了黄牛党的存在。并且各种抢票插件,尤其是早期的一些抢票软件,可以实现整车厢的车票购买,这其实是进一步加大了不公平性,尤其是对于那些互联网门槛相对较高的一些用户来说,其实买票变得更难。

2. 再来看看淘宝和12306的技术难点

从一个简单的例子开始

首先要明白的是,举个简单的例子,好比说12306是100人挤着上一辆从北京到上海荷载80人的大客车,但是每个人要到的地点都不一样,中途很多人要下车,并且有的人要坐卧铺、有的人要站着、有的人要坐着,但是大家都想在一分钟甚至几秒钟内完成从买票到付款到取票到上车坐下始发的全过程。而天猫双十一是1000人抢着上可能1500辆车,这些人可能会比较哪辆车最便宜,哪辆车会到哪个地方,并且大家会观望很久,有的买票早就早上车早出发,有的要后买票后出发,有的会坐去郑州的车,有的要坐去济南的车,但是每辆车中间都没有直接关系。

所以淘宝的数量看似非常庞大,商品种类非常丰富,但本质上每个人都是自己买自己的,除非购买同一款物品会有库存上的影响,其实数据量相对分散,访问的是很多张表,表与表之间甚至没有直接关系,查询不同的表, 访问不同的数据,理论上做一定的数据缓存也是可以的。但是12306不一样,12306地球人访问的都是那么几张表,大家都挤着上同一辆车,数据量非常集中,问题的关键是这玩意儿你还不能用缓存,这就是数据上的区别,淘宝跟12306虽然表面上数据量更大,其实处理难度更低。

其次再来说一说12306技术的难点

还是那句话,淘宝的数据虽然量大,但是其实本质上相对分散,也能够做数据缓存,然后每一个商品其实就对应一种结果,完成购买以后只会对当前数据量进行改变。但是12306不一样,首先是数据量同样非常大,难度最大的在于,同一个座位可能存在不同的结果,比如从A到B总共N站。但是其实假设是淘宝,永远只关心两种最终状态,但是12306不一样,同一个座位可能对应着很多种不同的情况,中间可能被多个人乘坐,那么理论上其实有N!种可能性,一旦每一个座位状态发生改变,都必须实时更新数据,不能出现数据缓存,刷新或者重新查询,数据都将发生改变,因此天猫双十一的复杂度远比不了12306购票的复杂度。下图给出的仅仅是2016-2017春节的PV值,如果把12306看作是一个单品电商网站,那么这款产品已经爆款。

再来看看天猫的以后可能存在的技术难点

再来看看阿里双十一的技术难点,至于在前面讨论到的,这里不再赘述,在2017年双十一,支付宝的峰值是25.6万笔/秒,这个跟12306的峰值水平相当甚至更高,而数据库的处理峰值是4200万/秒,可以说目前的高并发能达到这个水平的科技公司不多,真正电子商务里面也就只有阿里巴巴,但如前面所说,这依然不是难点,那么对于阿里来说,未来可能遇到更大的挑战在哪里,那就是在于数据的多维度的问题。

比如优惠券、比如折扣,如果再给折扣做个限制、给优惠券设置一个漫看,比如我只给100件衣服的80件衣服做折扣,那么这个问题就会稍微复杂点,但是淘宝天猫有个好处,买折扣商品跟买回家过年的火车票自然不是一个道理,一个是可以随时准备购买,一个是随时准备抢买。异步处理是最有效的方法,毕竟本质上用户需要先下单、添加购物车,然后再才是支付,这一套流程完全能更好的异步处理。但即使是这样,在双十一当天,双十一来临的当天晚上,也就是0点时刻到大概半小时之内,系统还是出现了较大规模的数据延迟,很多人没办法付款,甚至没办法下单。

3. 结论:阿里双十一技术难度跟12306春运技术难度还是有比较大的差距

交易系统本质上有几种类型,分别是定品、定量、以及定件系统,难度层级逐级上升,淘宝就是定品系统,而12306属于最难的定件系统。可能性更多,成交时间更短,排队几率更大,还不能做数据缓存,一旦有相应请求发生,必须更新全线路的数据,因此阿里和12306本质上还不是一个级别的技术当量。

当年12306曾公开招标,解决12306的技术难题,最终以IBM在内的科技公司全都主动选择放弃,没有企业敢接下这个活,最终阿里巴巴帮助12306托管了一部分查询业务,给阿里云提出了异步处理的建议,并且对12306进行了排队机制的支援,可以说现在的12306还能有如此稳定的表现,阿里巴巴也有一部分功劳。

所以,12306依然是全世界最大的技术难题之一,阿里巴巴虽然对12306做出了一定的贡献,但是核心技术依然还是依托于12306强大的技术实力,阿里巴巴搞不定12306,至少目前还远远不能!12306在发展过程中,一方面除了要解决极其有限时间内的技术上的高并发、高负载,还要保证资源分配的公平性,要尽可能限制更多的恶意抢票插件、车票黄牛等等,这对于12306都是极大的挑战,至少就目前的技术来说,12306做得虽然不算完美,但是已经是目前技术壁垒下最佳解决办法了。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:如何查看网页调用的接口_java | ·下一条:java公共类应如何声明_java

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有