为什么支付宝一天成交额超一千亿网络和系统都不出问题,而12306购票系统却不行?

看到很多答案都在强调12306的购票系统是多么复杂和高难度,似乎12306的网站建设让人不满意的关键是问题本身太复杂导致的。这是一种完全错误的认识,大家可以自行对比目前的12306和几年前的12306,顺畅程度和奔溃率,完全不可同日而语。最近几年,12306网站的进步有目共睹。问题的难度并没有降低,关键是技术进步和投入加大。

其次,支付宝的网络和系统也是会出问题,只不过得益于阿里巴巴的技术能力,解决问题的速度会比较快,给大家带来的困扰会比较小。毕竟大家的要求不是完美,而是体验不能太差罢了。阿里巴巴的技术难度不仅仅在支付宝这个系统,而在于淘宝等网站的海量数据处理,阿里巴巴不仅要保证支付环节不能崩溃或者出错,在购物环节也不能崩溃,而且在双十一等流量峰值时段,会有各种抵扣券,满减活动导致系统负担增加。短暂崩溃的情况也是时有出现的。

因此,首先要排除的一个情况就是,支付宝系统容易做,12306难度大,因此支付宝不崩溃,12306崩溃这个说法。虽然火车票订票系统跟支付宝和淘宝的技术难度不一样,但是,真正导致12306使用不顺畅的原因还是在于两个方面:钱和技术。

大家需要搞清楚的一点是,买不到票不能怪12306,因为网站不可能让车票变多,买不到票是因为座位不够。12306的职责是要正常运行,不崩溃。查询,购票,退票等服务能够尽可能高效。在早些年,12306的网站很容易崩溃,正是大家说12306系统不行的原因。淘宝网跟支付宝虽然也会有崩溃的情况发生,但是修复速度快,影响面小,给大家的印象就好很多。为什么会这样呢?因为阿里巴巴的网站技术,实力是世界级的,不是铁路局可以比的。与此同时,阿里巴巴投入网站建设的资金也比铁道部多很多。

铁路系统虽然也很强大,但是订票网站不是其核心竞争力,铁道部不可能把太多的资源投入到网站建设。铁道部的钱主要是用来建设铁路系统的,网站只是附加的一个项目而已。阿里巴巴的网站是安身立命的根本,重视程度不可同日而语。阿里巴巴最大的技术挑战就包括如何解决数据爆炸带来的系统负担,他们不断砸钱去解决这个问题,才有能力应对今天这种规模的交易量。而铁道部的网站建设,是在互联网时代为了满足市场需求做出的适应性行为。因此,阿里巴巴不管是在技术积累,人力投入还是资金投入方面,比起12306都有碾压性的优势。网站更好用一些也是理所应当的。

事实上,在12306订票系统难用备受指责之后,铁道部找了国内外的技术团队帮忙建设,其中就包含了阿里巴巴的团队。在重新梳理系统结构,完善网站建设之后,12306网站比以前已经有了很大的进步,整体的稳定性和可靠性还是可以接受的。由此也可以看出,当初的12306那么难用,主要的原因不在于技术难度,而在于投入程度。

看到这个问题,我想了小半天,抽了自己一巴掌,然后写下了答案:因为支付宝是私企,而 12306 是国企。

支付宝一天成交额超过一千亿,网络和系统经常都不会受到任何影响的,特别是双十一的时候,当天几千万亿的销售额,支付宝的系统完全没有任何崩溃的预兆。

而 12306 不但登录注册验证码杂乱无章,系统更是经常崩溃的。基本上每个人都必用的系统,怎么可能做得这么差?

没有对比就没有伤害,我想如果把 12306 交给马云去做,肯定是什么问题都了。

我们知道,支付宝的背后是马云在撑腰,是阿里在支持。马云的阿里展现出来的虽然更多的是电商和销售,但是其实很多人不知道的是,其实阿里的技术也是很牛逼的。

12306 没法给马云做,因为是国企,而马云的阿里和支付宝是私企。但是面对经常崩溃买不到票的 12306,马云自己就做了一个「飞猪」来实现了购票困难,注册登录困难的问题,现在在支付宝页面都能直接购买火车票高铁票了。

自从有了「飞猪」和「支付宝」,我和我身边的人就没再用过 12306,这说明了什么?

因为 12306 和支付宝的技术差距。我敢保证,如果 12306 项目给阿里做,给支付宝做,预定一个月开发期限,结果肯定比现在国企做的 12306 强百倍不止。

有人说,12306 售票系统比支付宝难比支付宝复杂啊?这纯属扯淡,不说支付宝已经如此成熟,而且支付宝里面就可以直接实现 12306 的全部功能了。

所以根本不存在说复杂不复杂的问题,是技术问题,是能力问题,不是所谓的难度问题。

最后,告诉大家一个事情,最开始 12306 是几个学生做的,但是出现了各种问题,怎么优化都没有好转。但是为什么今天我们用的 12306 有好转了呢?

因为后来马云的阿里提供了技术支持,做出来的 12306 就很少再有崩溃的现象了。也因为阿里免费的技术支持,所以我们今天用的支付宝购票就是接入的 12306,实则就是阿里的支持而来。

你认为 12306 以前为啥老崩溃呢?欢迎关注留言,等你评论,等你「一鸣惊人」!

简单来说一下:

你在淘宝相中一件衣服,S码,比如库存10000件,这10000件S码的衣服是一摸一样的,我作为消费者下了订单买了这款S码的衣服,数据库里对这件商品的库存量减1,这就结束了。

你想在12306买一张票,比如说你想买K590这趟车的坐票,起始地北京西,终点站重庆,但是你只是想买北京西到邯郸这部分段的票。这个能仅仅是对数据库的一条操作就可以完成了嘛?

不是。

你需要查询K590这趟车有没有票,而且还需要查询在北京西到邯郸这个区间里是不是有票,如果有票,那么我让你买了数据库里又该怎么去操作,每一张票都是这样的问题,每一行票都有自己独立的一个票号,都有很多个区间,在数据库层面,这就不是一张表可以实现的,在CRUD上,根本不可能想淘宝买衣服那样对数据库操作那么简单,所以他是多张表的关联操作。

淘宝很多时候都做秒杀活动,很多人去买1件或者2件的商品,比如说双十一一开始的时候,很多人去抢一些物品,这时候大量的请求蜂拥而至,你必须保证的是,这几件商品是需要被人买走的,同时其他人没有抢到商品,也就是抢购失败。

也就是说,你必须实现的是,这个系统时时刻刻要和数据库保持同步状态,这样才能保证数据的一致性。

而12306, 他是一个时时刻刻要出于秒杀状态的同步系统,而且,业务层面也是及其复杂。

并且,淘宝这种电商平台,都是维持一个28定则,百分之20的增删改,百分之80的查询。所以在数据库层可以加各种中间件,比如说redis缓存啊,数据库做主从复制,读写分离啊,等等来提高系统的性能。但是12306,他是出于一个高查询高修改的系统,很难去实现一个数据库层面的高可用。电商那一套应对高并发的思想在这里完全不适应。

而且,12306第一个要保证的并不是性能,而是数据的一致性,就是无论这个系统有多慢,性能有多差,也不能出现两个人同时买到一张票这样的重大bug,所以在技术上,他只能去用一些非常成熟非常熟悉的技术,因为必须保证不能出bug,一旦在这样的业务上出了bug,那代价和后果是及其严重的,一旦出现这样的bug,影响的可是成千上万人的出行。

而且,论并发,淘宝双十一那一天的并发量可能是每年里最高的,我认为他也并没有12306在春运时期要高。而淘宝,在平时的并发量,也远远不如12306

所以,12306的系统,无论你说他的ui界面做的有多垃圾,性能有多慢,但是,后台业务层,还是很厉害的!

至于所谓的阿里云免费为12306提供技术支持,好像是阿里云免费为12306提供了服务器和云数据库,最难的还是业务,像12306这样复杂的业务,像12306这样需要面对春运时期那样的并发,整个世界,我觉得都没有。

所以,一个是面对千万并发顺畅运行的淘宝,一个是可能需要时时刻刻去面对亿级并发保证数据一致性并不保证性能的12306,各有上下,因为业务不一样,量级也不一样。

因为确实不是一个量级的。

专业技术层面,前面有很多朋友已经讲得比较透彻了。

但是一些不懂技术的同学,读起来或许会有点费劲。

我来用通俗一点的方法解释一下。

支付宝的运算,相当于加减法,数额有大有小,频次极高,但是终究是加减法,计算机运算能力跟得上的话,不易出错。

至于12306么……

大家在高中时候,大概都学过概率论吧?对!就是那个一个盒子里9个红球8个白球,问连续五次摸到白球的概率是多少?要是给球加上标签,算摸到特定球的概率会更难点。

12306就是结合了加减法与概率算法的运算级别。这个运算量可以说是几何级提升的。

除了算法层面,还有服务器层面。

不是说,12306的服务器压力一定就比支付宝的要大,而是不稳定。

在一些出行高峰期时候,人民都会做一件事:抢票。

大家没事就不停的刷票,出票一瞬间十秒钟之内,票就没了(真实经历,切肤之痛,就没怎么抢到过票)。除了乘客在抢票,还有黄牛,这两年还有机器!各种五花八门的抢票软件,对于漂泊在外的同学们应该不陌生吧?反正我春节回家,全靠这些软件。

可以看看双十一时候,各大电商通宵达旦,全副武装的样子。我的一些京东淘宝的朋友说,双十一时候,大家吃住都是在公司,随时准备战斗。

12306能做到这个份上,真的也是不容易了。

做为一名资深的架构师想告诉你淘宝与12306有本质的区间。如果你能设计出他的方案给你100万都值得,前提是你的方案是可行的。

1、世界上最大的同时在线网站:先不要说购票,他能支持上亿人同时登录这个方案都很值钱了。大部分网站可以采用镜像方式在全国不同地点部署多套服务器提供服务,但你能忍受你在12306上查询出车票,但无法定票的结果吗?上亿人在线需要消耗多少内存,多少带宽?

2、世界上最高的并发操作:淘宝不同的商家分布在不同的服务器上,甚至不同的商品可以可以分布在不同的服务器上,所以淘宝在线用户不少,但在每台服务器上并不多。但12306呢?最算将一列火车放在一台服务器上,有多少人要这一列火车的票?票不能多买,在无数用户要购买同一张票状态下,如果锁定只让一个用户购买就很不容易。

3、多种类型的购买方式:淘宝就在淘宝上购买,但火车票呢?窗口、电话、团体、网站多在售出一列火车的,如何分配票都是一个很重要的问题。

4、分段购买方式:你在淘宝上见过分段购买东西的吗?目前只有火车票是这样做的,光你将如果分段做出来,你的工资过万是没有问题的。

总的来讲,12306在全世界都属于最等级的系统,你如果真有能力设计出来,你到任何一个IT公司都能做个技术总监的职位是没有问题的。

至于那些说几个学生做的,那说明他们不是做IT的。

为什么支付宝一天成交额超一千亿,网络和系统都不出问题,123O6购票系统却不行。因为支付宝有科技网络团队,不断创新完善网络为平台保驾护航。民营企业有忧患意识只有更好为大众满意服务,才能发展壮大。而123O6是铁老大的平台,有点象皇帝女儿不愁嫁的优势。所以网络平台也就不像支付宝那样用心尽力了。

别再说12306不行了,也别再说这是国企的问题了,大部分人根本不懂12306的复杂程度,认为只是一个订票网站?

全国有多少条铁路线路?有多少个站?有多少种可能出现的购票情况?在春运那种峰值期,每秒就会出现多少需求?每一张票都涉及到购买、成交、系统去库存和整条线路数据的重新运算,算法之复杂与支付宝的那种单一付费模式并不一样。

看事情最好客观的看待,不要捧高一个,贬低一个,诚然,阿里确实无论在技术实力还是人才储备上都是巨无霸级别的,但这并不代表一切。现在的12306比以前有了空前的进步,一方面是经验积累得来的,另一方面是国家加大投入得来的。

换句话说,如果国家花非常多的钱把这件事外包给BBA去做,容易吗?很容易。那么花费的费用量级是多少?这么复杂的系统,即便BBA的技术储备,人员支持都够用,这笔钱谁来出?

如果把这笔钱摊薄到每一个用12306购票的人身上,每一张票按照比例增加费用,请问各位乘客愿意吗?如果不愿意那么这笔钱谁来出?很多人说铁路总局出,可现在铁路总局负债几万亿。那么谁出?国家来出?国家从哪里出?国家并没有义务给铁道总局出这笔钱,自从铁道部改成铁路总局,就应该由铁路总局自己消化所有费用了。况且国家出钱,是要考虑是否造福所有纳税人的,每个用12306的人都不愿意多花钱买车票,凭什么让全体纳税人同意呢?

站在本位角度想问题总是简单的,自己看不惯什么就指责这个指责那个,其实根本没考虑到背后的问题,这个系统有多复杂大部分人不知道,铁路总局负债多少大部分人不知道,大部分人只知道自己用着不好用就喷,却从来不想想现在全国的火车票(包括高铁)几乎是全球最便宜的。

花着全球最少的钱,坐着全球领先的高铁,却一点都不愿意忍受系统带来的瑕疵。

因为12306的商品库存和品类是不断动态调整的,而淘宝天猫上的SKU是相对固定的,但是对于12306来说不一样啊。我们就以京九线、京广线来说,每个乘车区间都能卖票,如果卖掉了天津到蚌埠的一张票,那么北京到广州的票、天津到广州的票、北京到蚌埠的票都少了一张。如果加上退票、改签、同一人跨区间买票、同一时段重复购票、防止黄牛炒票等问题

只要是固定品类,不过是数据库里面一行或几行代码。唯一要处理的就是商品的库存和价格。 支付宝体系是非常分散的,而12306却是集中的。不管你在网上买什么商品还是在线下付款,实际上它们都是分散支付的,即便是双十一这样的大型活动时期它还是分散购买。简单点说,无论你购买吃的还是穿的不可以所有的人一起购买一个品类的产品,他们选择的范围太广,

所以12306的容错程度是零。不允许犯错。

12306是实名制的,一人一票,但是天猫可以随便买,所以,12306在下单前后有比较多的身份验证,但是天猫并不需要,所以,12306的单个订单的处理复杂度还是高于天猫的。 而且,全世界没有任何一个系统,在一个时间节点的时候,会涌进来好几亿人。12306能安安全全的票卖出去,我觉得已经很强大了。

所以,一个是面对千万并发顺畅运行的淘宝,一个是可能需要时时刻刻去面对亿级并发保证数据一致性并不保证性能的12306,各有上下,因为业务不一样,量级也不一样。

说白了,无论从硬实力(服务器,数据库,存储,网络),还是软实力(技术人才),两者相差太大,根本不具有可比性,最终导致这样的结果!还不够明白吗?

的确,以前在12306网站买票时,确实出现过系统假死的现象。但经过阿里巴巴的技术支持后,现在的12306网站已是得到了很大的改善,但是仍然会时不时出现系统假死的现象。而支付宝在经历了双11单日成交额超一千亿的情况下,也没出现死机,这是为什么?

一、软件技术确实没有支付宝成熟。

这一点必须承认。有些人可能在想:中国铁路这样一个重要的国企,在软件技术上还不如一个民营企业?怎么可能?这种想法真的是要不得。民营企业战胜国企的案例很多了,最典型的就有华为在通讯设备行业是世界的老大,而同在通讯设备行业的中兴,却只能排在世界第四的位置。

同样,支付宝开始的时间比较早,早在2003年淘宝兴起的时候,支付宝就紧跟其后,正式茁壮成长起来。而12306官网正式运行是在2011年开始的,整整晚了8年之久,所以,在技术沉淀上,支付宝的功底要比12306要厚实的多。支付宝经过多年的双11的应战,技术已经得到质的飞越,尤其是数据库方面,使用上了自己的分布式数据,比原来oracle数据库更加安全更加快速。

二、12306的瞬间数据量比支付宝更大。

为什么以前的12306会经常卡住不动?这跟12306网站庞大的数据分不开的。平时肯定没有问题,但是一到春节这样的节假日,每天可能有上亿的用户登录上12306的网站来购买火车票。这上亿的用户,还要在12306网站上做着很多的操作,也就是说,用户操作量会以亿的几何倍数来增长。

而且,还有众多的刷票软件在刷票,这就让12306的数据量再次成倍上涨,我公司的同事,只要一到春节前,就会通过刷票软件来抢票,他们会让抢票软件不停地刷票,直到抢到票为止。这个过程,有时可能要进行几个小时。一个人刷没啥关系,但如果是1000万人同时刷票呢?甚至5000万人同时,会怎样?

三、12306购票时需要身份验证。

为了防止黄牛票贩子买票,12306实行了实名制,一人只能购买一张车票,而且,还增加了验证的过程。这一系列身份验证,又无形当中给12306服务器增加了负担,没办法,因为票贩子太多,很多人都没有买到自己想要的车次车票。而淘宝网站,就不一样了,只需要用户登录以后,购买淘宝上的产品时,不需要再对身份进行验证,可以直接下单购买,这就减少了多次验证带来的数据量。

四、12306售票处理流程比支付宝的要复杂的多。

我们知道,淘宝的商家的商品实行的是库存制,也就是说,商家卖掉一个商品,这个商品的库存就会减少1个,直到库存为0时,就停止售卖。

而12306就与淘宝有非常大的不同,比如:一列火车有20节车厢,每节车厢有80个座位左右。刚开始卖票时,库存是20*80=1600。这个时候,也是按照淘宝样的库存制来的,卖1个少1个。

而火车到了中途,有的乘客就要下车了,这时,车厢就有了空位置,这时,12306网站就会把这个空位置重新计算到库存当中,重新拿出来开卖。这样的处理过程会一直到火车到达终点站才结束。

而且,现在进火车站和出火车站,都是使用的自动验票机了,这就更加加大了12306网站系统的数据流量。

以上就是我的观点,如有不同意见,欢迎发表评论。

答题不易,如果喜欢我的回答,欢迎【点赞、分享、收藏】和【关注】我。

搞事情!那些不能说的秘密都在这里   关注公众号:求知百科  

         

本文来自网络,不代表求知百科立场,转载请注明出处:http://www.hfxhjqr.com/838.html

作者: admin

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部