为什么12306手机客户端如此脆弱无法登录

非原创——

12306的难度不是你想的那么简单,对比一下12306与淘宝系统开发技术难度就知道了。首先阐明一点,淘宝技术比12306强大很多倍,接下来我们用详细的数据和案例来说明。

先说秒杀活动和抢购

淘宝平台现在的专题秒杀活动,如淘抢购、聚划算等活动,部分由于是超低价抢购,所以参加的活动人数非常的多,部分单品的抢购人数可能会突破百万人。拿前几年的一个数据,2013年圣诞的时候,天猫放出1.5W个天猫魔盒,所有商品在19秒内被全部抢完,此外还有一些品牌的手机,因为只在官网或者天猫旗舰店限量供应。

今年暑期,某品牌手机刚上架销售,当时限量5000台手机,我蹲守在电脑前面希望能抢到一部,结果就在时间刚到的那一秒,一刷新就卡住了,再刷新的时候,就显示已经售完。这样的情况相信很多人都经历过,这其实跟12306上的抢票是一样的。淘宝在早期也一度为解决用户拥挤的问题而想破了脑袋。

要知道,淘宝拥有各种自主研发团队:服务器、交换机(网上可以搜索到淘宝公开的绿色服务器开放标准);Web服务器(Tengine)、Java语言虚拟机(JVM taobao版)、操作系统(Linux Kernel taobao版,yunos手机操作系统是阿里云的,暂时不计入)、数据库(MySQL内核 taobao版,google和facebook也有自己的版本,HBase淘宝版、还有自己全部从头开发的OceanBase)、负载均衡器(LVS,LVS始创人就在淘宝,担任研究员)、Java运行容器(Jboss,其创始人之一,王文彬,也在淘宝,担任副总裁)

此外,淘宝的技术团队为了解决用户拥挤的问题还自己开发了非常多的开源项目和一些中间件,像高性能Java通信中间件HSF、分布式数据库中间件TDDL、异步消息系统notify等,但就是这样的淘宝,还是在流量高峰期出现卡顿的情况。

淘宝这么强大的技术还是不能解决流量高峰期的拥挤感是为什么?

第一:事物发展需要遵循物理原理,单个服务器所能承受的运算能力拥有上限(千万别提什么超级计算机,那个不是拿来做服务器的,你也用不起),所以必须使用集群服务器,但这就又引申出第二个问题。

第二:考虑现实经济效益,用无数多个服务器组成集群,确实可以解决这些问题,但是要知道12306和淘宝的流量都是有一定规律的。在春运期间,网站的峰值流量可能是平时的上千上万倍,如果部署过多的服务器,将会造成这些资源在平时里的极大浪费。在这一方面,淘宝会在流量不大的时候,将多余的硬件和带宽用来做云计算。

动态库存

淘宝秒杀和火车抢票,其实都要考虑到一个动态库存,对于每一个商品(专业的人管它叫SKU),在每一产品被卖出去之后,库存数就会减1。如果一个库存几万的产品在几秒内被抢购完,可能实际产生的请求数已经几十万个。

而在处理这些请求时,不是一个简单的http请求,服务器需要做:检查是否恶意访问、请求时间排序、核对用户资格、生成订单号、库存减少等等内容,这每一件事都要花费毫秒级别的时间,这些操作加起来的时间可能是接近1秒级别的,但由于淘宝的服务器比较强悍,而且采用了分布式和集群技术,结果比1秒理想一点。但即使有1万台服务器,也不能把这个时间稀释成万分之一秒,因为,商品只有一种,比如它有一万个库存,对应的数据库记录只有一行,所有的交易请求都要到这里来处理。

再来对比一下淘宝和12306的产品区别

淘宝单个商品的属性基本上也就是那么几种,但是12306的车票就不止了,以北京西到深圳北的G72为例。北京西到深圳北一共有17个站点,3种不同类型的座位(商务、一等、二等)。

那这里有多少种票呢,若从北京西开始出发,后面需要经过16个站点,每到一个站点的票,就相对于是一个独立的商品。在第二站上车的,有15种不同的下车可能,在第三站上车的,有14种不同的下车可能,以此类推就有了136种方式,再算上三种不同类型的车票,就有3*136=408种不同类型的车票。

而在处理库存时,也并没有大家想的这么简单,如果一个人从第一站上车,到第二站下车,这样就需要在第一到第二的商品库存减一,同时第一站到后面的每一个站台都需要减少一个库存,一共需要减少16个商品的库存。

再如果这个人是从第一站到最后一站,则第一站到后面16个站点都要减一,总计就要减少16+15+14。。。+1=120个。而这些数据还都是理论上的数值,现实中还要考虑铁道部对于不同站点分配的车票数。

在淘宝上买一个商品,需要减少对应商品的库存,但是卖出一张火车票,可能就需要对数十个商品的库存做修改。

此外12306的历史包袱我们也不能忽略,它后面还需要考虑票池、电话售票、火车站售票、代售点售票等传统服务。

说了这么多,并不是笔者一味的捧12306平台,只是不少人确实对其还存在很多的误解。作为一个民用的系统,12306的提升空间还非常的大,PC端的页面若采用太多JS或者CSS样式都会大大加重服务器的负担,但在APP上其实确实还可以好好修改一下,毕竟整个系统的设计风格确实是十年前的审美。

说回来还是钱的问题,像12306这种网站后台的服务器集群不是想象中的放几台服务器就搞定的,从服务器架构到软件部署以至于数据库的开发这些过程是一个海量的工程,当然也是一个需要巨额投入的过程,网站好编写,但是与票务系统,支付系统乃至于铁道系统的对接显得格外的重要,任何一个环节出问题都会造成购票过程的失败,双十一的淘宝在最初两年系统在支付环节就出现过问题,这还是在阿里云多年的投入与研发基础上才能基本保证海量的数据交换。那么12306的系统和淘宝类似但是春运购票期间的数据量应该超出阿里云很多,也许继续投入海量资金砸进去能解决问题,但是这么干真的经济吗?资本的投入是要回报的,在合理的资金投入情况下又想保证购票过程的顺利这在规则上进行改变,比如延长车票的预售期,铁路部门提前与那些外地务工人员集中的单位进行沟通,做好摸底工作,尽量把购票高峰均摊到平时,这样也可以极大的缓解高峰时期网站的负载量,总的来说就是科学的管理可以改善此类网站高峰时期的运行环境,这需要考量铁路部门的管理水平了。

本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/baike/41281.html

(0)
上一篇 2023-08-30 12:58
下一篇 2023-08-30 13:19

相关推荐

  • 公司老板让员工换华为手机怎么办

    看来这个公司与华为有非同一般的关系,如此支持华为,笔者觉得选择手机是个人的自由权,公司没必要强制性进行干预,华为作为国产机,确实各方面性能都不错,支持国产确实应该,但是如果有了附加…

    2023-03-07
  • 如何对工控机主板进行选型设计(工控机主板插槽图解讲解)

    工控机主板选型主要注意以下4方面:主板布局、CPU、接口配置、做工原料! 一、主板布局 工控机主板的布局主要是从工控机主板上各部件的安排与线路的走线来体现的。好的工控机主板在行家的…

    知识百科 2023-07-20
  • dedecms到底怎么样

    首先可以明确的告诉你,DedeCMS的0day漏洞很多,而且也有一年多时间没有维护了。所以网上“流传”DedeCMS不安全、漏洞多是真实的情况,但这也洽洽说明dedecms在以前的…

    知识百科 2023-01-17
  • 刘邦的老婆为什么要杀韩信

    韩信作为西汉开国功臣,与萧何、张良并称“汉初三杰”,作为“兵权谋家”的代表人物,位列“兵家四圣”,后人更是奉其为“兵仙”、“神帅”。然而,由于才能太过出众,再加上重军事而不重权谋,…

    2022-11-04
  • 你怎么评价六小龄童

    我想提问者能向大家提出“怎么看六小龄童”,大概是因为六小龄童有这样几件事一直围绕着他。 第一:六小龄童反对对《西游记》胡编乱造。已经由来已久了,我们可以看到六小龄童在很多场合下说过…

    2023-08-10
  • 霍金成就,霍金的主要成就有哪些?

    施郁(复旦大学物理学系教授) 在以前的一个问题中,我列举了霍金对于经典广义相对论的贡献,特别是黑洞的视界面积不会减小、黑洞动力学四定律、证明“黑洞无发定理”:黑洞只需要由质量、电荷…

    2022-12-20
  • 成龙什么广告都接

    成龙是香港影坛中有名的功夫巨星,早期凭借着自己的努力以及自身的优势,开创了“喜剧功夫”类型电影,而他的一部《蛇形刁手》也是作为掀起香港功夫喜剧风潮的石破天惊之作!成龙诙谐幽默的动作…

    2023-06-13
  • 为什么叫月台,火车站的站台为什么叫月台

    铁路的站台是一个很有意思的地方,为方便旅客上、下车,铁路部门在车站线路旁修建的台子,在铁路规章中称“站台”,但一些地方因地方方言和习惯俗语称为“月台”。月台分岛式和侧式两种,老式的…

    2022-11-12
  • 范伟属于喜剧之王吗

    范伟是个百年一遇的艺术家。范伟在演艺路上摸爬滚打数十年,他以独树一帜的“范式幽默”表演,征服了亿万观众。现在大中华圈谁不叫一声“彪哥!” 我不知道大家看过范伟演的电视剧《星光灿烂》…

    知识百科 2023-05-01
  • 纪晓岚的老婆是谁,纪晓岚的老婆都有谁

    电视剧《铁齿铜牙纪晓岚》火爆荧屏的时候,多少人曾追剧追到通宵不眠。此剧剧情的幽默诙谐,跌宕起伏,让人唏嘘不已;剧中纪晓岚的伶牙俐齿、圆滑善变、才思敏捷,更是给很多人留下了一个深刻的…

    2022-11-27