查看: 270|回复: 4
收起左侧

我终于知道网购火车票这么难买了!!!!

  [复制链接]
发表于 2014-1-19 10:47:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
  1月11日起,12306网站开始销售除夕当日火车票。每到此时,铁路系统唯一的官方购票网站12306就会成为众矢之的。今年也不例外,12306再次被淹没在一片埋怨声中。
  1月5日,观察者网刊登了问答网站“知乎”上的用户王强的解答,回答“如果把12306外包给IBM或者阿里巴巴来做的话,能不能比现在做得好?”这一问题。
  1月10日,一位ID名为“代码狗”的前淘宝工程师,后来在一家电商公司做技术副总的IT业内人士也在著名论坛“西西河”上发文,表达了他自己对12306系统的看法。
  值得注意的是,“代码狗”在12306系统刚上线时也有过不少微词。为了证明12306系统很容易搭建,“代码狗”甚至曾经发起过一个名为“替12306设计系统”的开源项目。通过工作中的实践,“代码狗”对于12306系统也有了新的认识。
  观察者网转载此文,供读者参考。
全文如下:

  本人淘宝技术专家,2012年在一家百强民企做电商副总,当时在极为艰苦的条件下带队开发了一个B2C(企业针对个人开展的电子商务活动——观察者网注)网站,走支付宝和银联支付通道,年营业额千万级(作者注:当然实在太少了,我只是说这个网站投入了实际的运营)。
  也就在那个时候,我对12306嗤之以鼻,觉得他们做得太烂了,认为自己能带队花几百万半年时间做个好的出来。于是我狂妄地想做一个开源的订票系统给他们。我花了一个星期时间思考建立数据模型,思考到库存这一步的时候,我才发现,12306的库存复杂性比淘宝、京东高很多倍,运算量也大很多倍。传统的分布式数据库、缓存、负载均衡技术并不能恰好满足12306的需求。
  在平时,12306也就是个正常的电商网站。但一到黄金周,12306就是一个全站所有商品都秒杀,所有SKU都是动态库存的变态。
  即使不考虑线下既有的电话、代售点等渠道,要实现一个12306,最少最少也是千万级别的硬件投入(作者注:这是当时的估算,没有精算,可能与实际相差较大,总之,我说得不一定对,12306的业务也许没我说的那么复杂,但也绝不是某些人喷的那么简单),软件和人力另算。那些叫嚣只要40台服务器、只要2个架构师4个程序员、大谈分库分表和前端CDN的人们,只是纸上谈兵罢了。所谓初生牛犊不怕虎,做了三年CMS和BBS,就以这个经验来喷12306,未免太天真了。
  媒体人喷12306,是他们不懂技术,没有能力和耐心来分析背后的难度。技术人员喷,则是因为大部分的技术人员在短时间思考时,容易陷入过于乐观的误区,经典的例子就是估算工作量,程序员们往往容易估算出一个超短的工期,把写程序的工作乐观地想象成了打字员照稿敲键盘的工作。
  知乎那篇文章,我觉得不是洗地。排名第一和第二的答案都说得很客观。淘宝技术是比12306强大很多倍,淘宝现在的系统也是花了10倍于12306的钱、时间和人才做起来的。根本原因还是铁路运力不能满足春运需求,淘宝也解决不了这个问题。
  12306这一年来进步非常大。从前段动画验证码、分时段抢票,到后端去小型机、虚拟化、内存数据库的运用。可以说,12306是中国政府机关做的最强大的网站(电商系统),能在短短一两年内做出这样的改变,几乎是个奇迹,就连一些市场化的民企都望尘莫及,甚至一些上市公司都比不上它!(比如51job和ctrip)。
  事非经过不知难,在网上批判12306的人,大部分还是形成了【国企=垄断+腐败+低效】的思维定势。小部分是真的轻视了它的难度。
  至于12306一期工程3个亿(含硬件)贵不贵我不评价,我只提供一个数字供参考,百度一年的研发费用(不含硬件)是10亿,这个数字来自百度财报。网上能查到。3亿看起来好大一个数字,真用到超大型的电商系统、搜索引擎系统里面,其实也不算什么天文数字了。
  再解释一下,为什么秒杀压力大,以及为什么12306的动态库存很复杂。
先说秒杀。
  2013年12月25日前后,天猫搞了一个圣诞季积分兑换活动,持续几天。25号上午10点12分,放出了15000个天猫魔盒(淘宝集市有人卖,大概190-230块),从成交记录上看,是19秒内全部抢完。
  实际上,我也参加秒杀了,那天的题目特别简单(请输入xxx汉字的拼音首字母),我应该是5秒内答题完成并提交订单,结果告诉我排队的人太多,挤不进去,并提示14秒以后重试。人太多就是因为题目太简单了,门槛越低,5秒内挤进去的人也越多嘛,如果题目换成【2克浓度为3%的U235在大亚湾核电站能发多少KW的电】,5分钟之内也不会有1万5千人跟我竞争。
  我想,14秒以后哪还有我的事情呀,于是重新答题秒杀,结果出现了服务器错误的页面。反复刷新几次,就告诉秒杀结束了。
  在群里问了一下同事,有不到10个人回答我,都说没秒到(也可能秒到的人闷声发大财,不回复我)。
  淘宝是什么技术水平呢,淘宝有至少4000技术人员,至少4万台服务器(这都是两年前的公开数据了,按规定可以谈论),2013年11月11日成交额351亿,2012年全年成交额超过1万亿。
  淘宝拥有各种自主研发团队:服务器、交换机(网上可以搜索到淘宝公开的绿色服务器开放标准);操作系统(LinuxKerneltaobao版,yunos手机操作系统是阿里云的,暂时不计入)、Web服务器(Tengine)、Java语言虚拟机(JVMtaobao版)、数据库(MySQL内核taobao版,google和facebook也有自己的版本,HBase淘宝版、还有自己全部从头开发的OceanBase)、负载均衡器(LVS,LVS始创人就在淘宝,担任研究员)、Java运行容器(Jboss,其创始人之一,王文彬,也在淘宝,担任副总裁)。
  淘宝还有数不清的开源项目和中间件,如高性能Java通信中间件HSF、分布式数据库中间件TDDL、异步消息系统notify等等等等。
  以淘宝这样的技术水平,也不能做到秒杀时让每个用户都没有拥挤感,为什么呢?
  一是要尊重物理原理,一台服务器一秒钟能承受的计算量是有极限的,任你怎么优化,采用多高效的算法和编程语言,都突破不了某个极限,比方说汽车发动机驱动的F1赛车至今也不能突破400公里的时速(超音速推进号那个1千多公里的时速不能算,那是飞机引擎驱动的)。再往深了说,就不容易懂了。感兴趣的可以从著名的C10K问题开始看起。
  二是要考虑经济效益,十一黄金周的时候,北京主城区到八达岭长城的路堵得严严实实,但不能因为黄金周的高峰,就把这段路修成长安街那样10车道的高速公路。否则的话,花费天文数字(真的是天文数字,12306那3个亿大概只够修1-3公里)。修了一段路,黄金周是可以飙到80公里/小时了,可平时呢,拿来给两边的居民晒谷子?
  淘宝目前的硬件和带宽数量,已经超出日常运营的需求了,就是留了相当大的余量给大促销(众所周知的是双十一,双十二,其实基本每个季度都有大促销,每个月都有促销,甚至天天都在促销——聚划算)。amazon当年就是为了应对黑色星期五的大促销购置了大量的服务器,平时订单量没那么大了,amazon就把富余的服务器拿来搞云计算了。顺便说一下,阿里云是当今中国第一世界数一数二的云计算服务商,和amazon走的路也有点像。
再说动态库存。
  淘宝秒杀天猫魔盒的时候,只有一个商品(行话叫做SKU),它的库存是15000个。有一个人秒杀到了,库存就减1,19秒卖完的,一秒要成功产生789个订单(下订单的请求可能是8万个,只是可能啊,非实际数字,也可能是1万个,用于说明一下壮观程度)。想象一下,你在广场上卖火车票,一秒钟有8万人举着钱对你喊:卖给我!
  上过大学的人都知道,比秒小的时间单位还有毫秒、皮秒、飞秒。但交易系统登记一个交易可不像原子绕着原子核跑一圈那么简单,它要做这些事:检查是否恶意访问、取到系统时间、取到顾客默认收货地址、核对顾客秒杀资格(当时的规定是天猫T2.T3达人)、生成订单号、把顾客ID系统时间订单号收货地址写入订单系统、扣除顾客天猫积分、商品库存减一、给顾客打标记(每人只能秒一个,下次不能秒了)等等,这每一件事都要花费毫秒级别的时间,这些操作加起来的时间可能是接近1秒级别的,但由于淘宝的服务器比较强悍,而且采用了分布式和集群技术,结果比1秒理想一点。但即使有1万台服务器,也不能把这个时间稀释成万分之一秒,因为,商品只有一种,它有15000个库存,对应的数据库记录只有一行,所有的交易请求都要到这里来处理。
  能不能把这15000个拆分成5000个商品并分配到5000台服务器上呢?那样不就可以5000台服务器同时处理了吗?答案是不能,首先,5000个商品,意味着有5000个商品详情页,5000个购买按钮,这对前期的营销、引流是个灾难。基本上就没法做引流入口了,显然这违背了商业管理原则,人为增加了信息混乱程度。其次,天猫魔盒秒杀也不是啥大事,即使按官方标价399元来计算,也就6百万的交易。如果6百万的交易要花费那么大的配套成本,那就太不划算了。再次,淘宝有十几亿商品,这十几亿商品的展示交易和管理,本来就是分布到上万台服务器上去了。没有必要再把每个商品按库存拆成多个商品了。
  这789人抢到了,还不一定会付款(99积分换天猫魔盒还好一点,不需要去网银,成本也极低,大部分是会付款的,3999秒杀iPhone5S就不一定,有人可能网银有问题,有人可能改变主意不想要了),所以就又带来订单取消重新恢复库存的问题。还有想要的消费者们,会认为还有机会,继续在前台刷一会儿,最终这个秒杀会被热情的消费者们猛刷30秒到1分钟。
  一分钟过去了,服务器终于可以喘口气了吧?等等,还有超卖,原来,某两台服务器在同一毫秒都拿到了锁,都去减了库存,15000个库存,被下了15500个订单,又得取消一部分订单。。。如果采用单线程独占锁,是可以做到同时只有一个服务器线程减库存的,但那样就对并发高峰的能力就差了好多了。8万人举着钱,可能只有8个人能下单成功,这个拥挤狂热的抢购就要持续10分钟以上。平时秒个天猫魔盒,10分钟也就10分钟吧,双十一就惨了,收银台一下子减少了90%,还想做到350亿,要么做梦,要么再加10倍服务器和带宽。所以,商业是不完美的,要在绝对正确和绝对的快速之间做个取舍,保证相对快速又极为正确,允许一定的库存错误和超卖(具体允许多少我也不知道)。
  好了,讲了这半天淘宝,可以说12306了吧?
   我以北京西到深圳北的G71次高铁为例(这里只考虑南下的方向,不考虑深圳北到北京西的,那是另外一个车次,叫G72),它有17个站(北京西是01号站,深圳北是17号站),3种座位(商务、一等、二等)。表面看起来,这不就是3个商品吗?G71商务座、G71一等座、G71二等座。大部分轻易喷12306的技术人员(包括某些中等规模公司的专家、CTO)就是在这里栽第一个跟头的。
  实际上,G71有136*3=408种商品(408个SKU),怎么算来的?请看:
  如果卖北京西始发的,有16种卖法(因为后面有16个站),北京西到:保定、石家庄、郑州、武汉、长沙、广州、虎门、深圳。。。。都是一个独立的商品,
  同理,石家庄上车的,有15种下车的可能,以此类推,单以上下车的站来计算,有136种票:16+15+14....+2+1=136。每种票都有3种座位,一共是408个商品。
  好了,再看出票时怎么减库存,由于商务、一等、二等三种座位数是独立的,库存操作也是一样的,下文我就不再提座位的差别的,只讨论出发与到达站。另外,下文说的是理论世界的模型,不是说12306的数据库就是这么设计的。
  旅客A买了一张北京西(01号站)到保定东(02号站)的,那【北京西到保定东】这个商品的库存就要减一,同时,北京西到石家庄、郑州、武汉、长沙、广州、虎门、深圳等15个站台的商品库存也要减一,也就是说,出一张北京到保定东的票,实际上要减16个商品的库存!
  这还不是最复杂的,如果旅客B买了一张北京西(01号站)到深圳北(17号站)的票,除了【北京西到深圳北】这个商品的库存要减一,北京西到保定东、石家庄、郑州、武汉、长沙、广州、虎门等15个站台的商品库存也要减1,保定东到石家庄、郑州、武汉、长沙、广州、虎门、深圳北等15个站台的商品库存要减1。。。总计要减库存的商品数是16+15+14+……+1=120个。
  当然,也不是每一张票都的库存都完全这样实时计算,可以根据往年的运营情况,在黄金周这样的高峰时段,预先对票做一些分配,比如北京到武汉的长途多一点,保定到石家庄的短途少一点。我没有证据证实铁道部这样做了,但我相信,在还没有12306网站的时候,铁道部就有这种人工预分配的策略了。
  想象一下,8万人举着钱对你高喊:卖给我。你好不容易在钱堆里找到一只手,拿了他的钱,转身找120个同事,告诉他们减库存,而这120个同事也和你一样被8万人围着;也和你一样,每卖出一个商品要找几十个人减库存……这就是12306动态库存的变态之处。比你平时买东西的任何网站的库存机制都复杂几十上百倍。
  再说一下抢票插件,机器永远比人快,当你好不容易从8万人里突出重围,来到了柜台前,你发现,我操,来了10万根绑着钱的竹竿,而且当有退票出来的时候,你要闯过3层人肉才能接近柜台,竹竿在8个人身后一伸,钱就到了柜台前。你低头看了一眼手机,票就没了,竹竿却永远在那里伸着,永不低头,永不眨眼。如果没有这10万根竹竿,虽然你很可能还是抢不到票,但不至于沮丧成这样:我TM为什么总是手最慢的一个?!!
  防机器人抢票,也不是加个图片验证码那么简单。我写过文章系统性分析过,图片验证码有6种机器暴力破解的办法,抢票插件用的是我说的第三种,OCR识别(光学字符识别——观察者网注)。Google采用的Wave波形字母已经能比较好地防住机器OCR了,ems.com.cn上的验证码就是反面教材,机器OCR成功率接近100%,12306的比ems的图片验证码强一点。不过,验证码设置得复杂一点吧,人们要喷:这只是便宜大学生和办公室白领,农民工连26个字母都认不齐,怎么搞?搞动画验证码吧,也有人喷,视力不好的人怎么办?最后验证码搞得太简单了,皆大欢喜了,其实最高兴的是开发抢票插件的公司。
  就算采用了机器完全不可能识别的验证码,也防不住社会工程学的破解办法。招募一堆网吧打游戏的青少年朋友,每成功输入50个验证码给1块钱,或者等值的虚拟货币、游戏装备,我保证想赚这个钱的人数不胜数。这点钱对转卖车票的利润而言,是可以接受的成本。有没有什么技术可以防住社会工程学的破解办法呢?能防住网吧青少年的验证码只有【2克浓度为3%的U235在大亚湾核电站能发多少KW的电】。
  以上讨论只是把12306当成和淘宝一样没有历史包袱从零起步的交易系统,实际上,它不是,它后面的票池,还有电话售票、火车站售票、代售点售票等多个传统渠道要服务。除了客运服务,12306还有全国最大(很可能也是全球最大)的大宗物资货运系统。
  架空政策(包括定价政策、警方打击黄牛政策、身份验证政策)谈技术,是不可能解决春运抢票困局的,要想让春运的时候每个人在12306抢票都毫无拥挤感(但不一定能抢到票,铁路运力摆在那),那就是逼着12306买一大堆服务器对付春运,春运过去后,成为跟amazon一样牛逼的云计算服务商。和逼北京修一条10车道的高速公路去八达岭长城一个道理。
  目前的12306技术上是还有问题,比如,抢票高峰,输入个身份证号和图片验证码都卡得要死(本人亲测),服务器端繁忙,你浏览器端卡什么呀。
  但人家在进步。相信2014年春运的时候,技术已经不再是一票难求的主要问题。在铁路运力不可能神速增加的情况下,要做到春运更公平地买票,需要停靠政策调整。
  下文针对的是春节国庆这种非常暑期。其它时期,大部分线路保持现状就行了,问题不大,极少部分票源紧张的线路可以按春运处理:
  1、拍卖法,价高者得之
  当硬座票拍出飞机票价格的时候,相信票就不难买了(可惜就是贵了),也没有那么多黄牛了。要说淘宝有什么能帮12306一下子搞定技术问题的,淘宝的拍卖系统可以帮忙,浙江省高院在淘宝拍卖一年多,成交26亿。
  可惜这个方法不可能实行。现在的高铁票价都被媒体和意见领袖喷成啥样了,何况是拍卖。再说,火车票毕竟是生存之刚需,票价20年来不涨本来就有照顾补贴的成分在里面,全拍卖可能也是不妥当。
  2、抽签法,运气好者得之
  开车前2个月开放报名,开车前7天抽签,中途可取消。预存票款,抽不中退款。上传身份证和正脸自拍照,机器核对。
  这样的话,拦截黄牛的成功率就高很多了,黄牛可以预存票款,可以找到大量真实身份证号,你黄牛再让每个给你身份证号的人把身份证照片和脸部自拍也给你试试?即使有人真想找黄牛,给身份证照片还是会犹豫一下吧。而且中间手工操作多了很多,黄牛成本提高,还不一定搞得到票。反正都是碰运气,我想真正的消费者还是会选择自己先去碰运气吧。
  这个方法实施难度也大,无论怎么设计抽签规则,必然有人大叫“有黑幕,不要相信政府”。
  开车前7天出抽签结果,改变行程的人应该在7天前就能决定改还是不改了。没抽到的也还有时间想别的办法。当然不一定是7天,15天,10天也可以,具体几天要有数据模型来算。
3、拍卖+抽签
  软卧、高铁商务座等高价位的,拍卖,反正买这个的是经济能力相对较强的。那就拼谁经济能力更强吧。
  硬座、站票抽签。
  4、凭身份证进站,车票跟发票一样,是报销凭证,不是进站凭证;退票后钱进入12306账户,不可提现,只可该乘客下次乘车用;黄金周期间,个人账号最多订购10张票
  这个办法可以打击黄牛囤票再转卖;运行一段时间后,按账户余额弄个排行榜就知道谁是黄牛,可惜这个需要车站设备改造配合。
 楼主| 发表于 2014-1-19 10:58:22 | 显示全部楼层
  自从12306购票系统上线以来,春运期间的崩溃、卡死、页面无响应就伴随着12306的成长。当然,随之而来的便是普通百姓的一片嘘声和所有IT媒体对铁道部IT架构的各种质疑。之后,各种技术大牛和媒体都开始质问12306,为什么不用IBM的解决方案?为什么不找阿里巴巴来做?为什么不增加服务器和网络带宽?   面对几乎一边倒的口诛笔伐,知乎上一位名叫王强的网友在日前给出了自己的分析答案。去掉其中的吐槽部分,分析结果如下:   12306IT系统:   12306以前的IT系统主要采用Superdome小型机(具体型号不详)+HP-UX+Sybase ASE数据库。但在发现性能不足之后全部改为x86+Linux平台,基本配置为(大约)17台多路至强E7服务器(具体路数不详),每节点1TB内存,而数据库则应该还是Sybase ASE(只不过数据库全部放在内存中运行,想要换数据库难度太高,停机时间太长)。   12306系统在2013年春运中的峰值负载约为11万TPS,新的系统在2013年虽然时有崩溃,但都能在短时间内恢复,而这也说明新系统基本抗住了2013年的春运压力。11万TPS的水平与2012年淘宝双11时水平相当。   12306痛点分析:   从12306在2013年春运高峰时每日放票400万张的水平来看,12306虽然在总量上不及13年淘宝双11的水平,但因为12306放票主要集中在10个放票时段,而余票在每个时段刚开始的3分钟内就能够基本售罄,所以12306所承受的压力基本可简化为30分钟内承受300多万的放票,当然,还要有更多的刷新和查询请求。如果以这个标准来衡量,12306所面临的压力堪称全球最大。   另外,12306的每一次出票都会对原有数据库进行更新,交易关联度更大。而淘宝双11的交易则分散在了众多商家中,虽然每次交易也会对数据库进行更新,但其密集程度和关联程度仍不及12306.   为什么不用IBM或者Oracle系统?   这是个尖锐的问题,抛去信息安全和贸易保护的因素不谈,王强给出的答案是IBM Power系统无法与12306现有的系统做到灵活扩展,升级也无法做到不停机。另一方面,IBM Power解决方案在金融方面表现突出,但针对12306这种典型的票务系统,优势则并不明显。当然,价格因素也必须考虑在内(以经验来看,通常小型机及其他核心系统每年的维护费用约为整套系统采购价格的20-30%,甚至更高)。而Oracle的解决方案也有着类似的问题。   王强表示,实际上12306在之前就已经接触过包括IBM和Oracle在内众多全球顶级IT解决方案提供商。但这些提供商纷纷以各种理由拒绝了合作(也包括其解决方案在灵活性、扩展性等方面不符合12306需求的情况)。   为什么不让阿里巴巴来做?   作为国内IT应用水平最高的公司之一,12306当然也不会忘记向阿里巴巴取经。王强在文章中表示,阿里巴巴团队实际上已经参与到了12306系统的建设中来,并且帮助12306构建了其排队系统,这一系统对于帮助12306系统免于彻底崩溃起着巨大作用(免于崩溃指的是系统后端的数据库等核心系统,而对于前端的卡死和崩溃原因目前仍没有确切的定论)。当然,由于两种应用本身的区别性很大,阿里巴巴团队也没能在更大的层面上帮助12306。   怎么拯救12306?   王强在文中并没有直接给出这个最核心问题的答案,不过从以上的分析来看,12306系统的主要问题集中在单个处理节点的处理能力以及系统总线的峰值吞吐量上。而12306已经将数据库放在了内存上,而每个节点的内存容量达到了1TB的量级,从目前的情况来看,这已经是目前IT的最高水平,短期内再无其他办法(12306采用了Pivotal的GemFire分布式内存数据平台,该平台虽然宣称可以通过增加服务器规模线型提升性能,但从实际的情况来看17台多路E7应该就是其性能上线了)。   客观来讲,王强所给出的分析还是非常理性的,而就目前整个业界的IT水平来讲,12306确实已经站在了最前沿,虽然其效果仍不够理想,但其努力仍然是值得肯定的。相信随着单个处理器性能的增强,内存总线带宽的增加,数据中心网络带宽的增加以及延迟的降低,12306的表现会越来越好,当然,这个过程可能会比我们所期望的要漫长很多。
 楼主| 发表于 2014-1-19 11:02:43 | 显示全部楼层
  由于“抢农历小年票”效应,1月5日,铁路购票网站12306断断续续崩溃了一上午。到了1月9日,伴随着不少白领放假前一天的票开始陆续放出,本已迟缓的12306彻底万劫不复,报错的蓝色窗口截屏伴随着各色吐槽充斥了微博。根据新浪网调查,有87.9%的网友表示12306崩溃影响到了正常购票。   购票高峰日,网站瘫痪时。在诸多抱怨中,最常见的一类是“人家支付宝24小时交易350个亿都没瘫痪,只要马云接手,12306就不会这样!”   这背后的潜台词不言而喻:国企花几个亿搞的12306,远不如淘宝、百度、腾讯等互联网巨头提供的服务靠谱,如果铁老大放下身段与“马云”合作,12306定不会收获如此多臭骂。   愿望很美好,但恐怕并没这么简单。   首先,作为一个互联网产品,用户对12306的预期是“提供快速稳定的购票服务”,再说直白点,就是“我只要点几下鼠标,就能在12306上顺利买到回家的票”。所以,网友们对“网站崩溃”的抱怨只是表象,千万不要以为普罗大众真的关心一个花费几亿的网站是否真的稳定,人们真正无法忍受的是“这个网站为什么不卖给我火车票”。在此基础上,才会追根溯源,一路分析到12306的服务器够不够、“马云”和国企哪个水平高之类的和自身需求原本无关的话题。   其次,把12306交给“马云”,可以做到少崩溃,甚至提供和互联网巨头一样稳定的服务吗?没问题。   “马云”其实已经在拯救12306——在第三方团队的帮助下,铁科院已经逐步将12306的余票查询系统和订票查询系统从硬盘中搬了出来,放在了服务器的内存资源池中。我们知道,硬盘的存储处理速度和内存比有高达10万倍的差距。自2013年春运始,12306的崩溃问题主要集中在“打不开网站”或“订票无法完成”,在“查还有多少余票”和“查已经购买的票”时基本比较流畅。此外,阿里等互联网公司也参与改造了12306的排队系统。   这种改进当然还远远不够,12306依旧拥有臃肿的前端和UI(导致崩溃的部分原因)、不够人性化的购票流程(与各类抢票助手体验相差甚远),而这些长期被诟病的问题却并未得到铁科院的认真解决。如果把这些问题交给“马云”,的确想不出它们依然会成为系统短板的理由。   从纯技术角度再极端一点说,对于一个全年压力集中在几个星期的售票系统而言,赌上几家互联网巨头的资源,不计成本,将全国2369对旅客列车都分别配上单独的处理集群,并部署在不同机房。肯定不会出现崩溃卡顿之类的问题。   不过,回到最初的问题上来。这样的解决方法,真的就能拯救12306吗?   “马云”的办法做到极致,就是让用户原本需要花几小时断断续续刷网站的体验,变成“秒杀”——没错,假设系统能力变成无限大,足以实时响应春运时最多每天一千万用户的每次鼠标点击,绝不崩溃的后果就是车票瞬间抢空。   要知道,2013年春运出行人数已经达到34亿,而2014年春运铁路运力不过才2.5亿人,而且12306只出售其中一半的票。这个数量级缺口注定导致12306的性能无论优化到何种地步,用户买到票的概率都不会提升,真实需求也得不到满足。不少人看到的,将是一个到达放票时间后,迅速告诉你“没票”的网站。   所以,“马云”能保证12306不崩溃,但“马云”并不能保证让网友坐上回家的火车。   没错,12306崩溃的实质,不单单是网站技术问题,而是供需矛盾并未得到解决。你说这个问题怎么解决?在春运火车票依然被国家和民众视为某种福利的前提下,除了秒杀和排队,真没好办法可以解决了。秒杀起码痛快些,不是吗?
 楼主| 发表于 2014-1-19 11:03:05 | 显示全部楼层
  由于“抢农历小年票”效应,1月5日,铁路购票网站12306断断续续崩溃了一上午。到了1月9日,伴随着不少白领放假前一天的票开始陆续放出,本已迟缓的12306彻底万劫不复,报错的蓝色窗口截屏伴随着各色吐槽充斥了微博。根据新浪网调查,有87.9%的网友表示12306崩溃影响到了正常购票。   购票高峰日,网站瘫痪时。在诸多抱怨中,最常见的一类是“人家支付宝24小时交易350个亿都没瘫痪,只要马云接手,12306就不会这样!”   这背后的潜台词不言而喻:国企花几个亿搞的12306,远不如淘宝、百度、腾讯等互联网巨头提供的服务靠谱,如果铁老大放下身段与“马云”合作,12306定不会收获如此多臭骂。   愿望很美好,但恐怕并没这么简单。   首先,作为一个互联网产品,用户对12306的预期是“提供快速稳定的购票服务”,再说直白点,就是“我只要点几下鼠标,就能在12306上顺利买到回家的票”。所以,网友们对“网站崩溃”的抱怨只是表象,千万不要以为普罗大众真的关心一个花费几亿的网站是否真的稳定,人们真正无法忍受的是“这个网站为什么不卖给我火车票”。在此基础上,才会追根溯源,一路分析到12306的服务器够不够、“马云”和国企哪个水平高之类的和自身需求原本无关的话题。   其次,把12306交给“马云”,可以做到少崩溃,甚至提供和互联网巨头一样稳定的服务吗?没问题。   “马云”其实已经在拯救12306——在第三方团队的帮助下,铁科院已经逐步将12306的余票查询系统和订票查询系统从硬盘中搬了出来,放在了服务器的内存资源池中。我们知道,硬盘的存储处理速度和内存比有高达10万倍的差距。自2013年春运始,12306的崩溃问题主要集中在“打不开网站”或“订票无法完成”,在“查还有多少余票”和“查已经购买的票”时基本比较流畅。此外,阿里等互联网公司也参与改造了12306的排队系统。   这种改进当然还远远不够,12306依旧拥有臃肿的前端和UI(导致崩溃的部分原因)、不够人性化的购票流程(与各类抢票助手体验相差甚远),而这些长期被诟病的问题却并未得到铁科院的认真解决。如果把这些问题交给“马云”,的确想不出它们依然会成为系统短板的理由。   从纯技术角度再极端一点说,对于一个全年压力集中在几个星期的售票系统而言,赌上几家互联网巨头的资源,不计成本,将全国2369对旅客列车都分别配上单独的处理集群,并部署在不同机房。肯定不会出现崩溃卡顿之类的问题。   不过,回到最初的问题上来。这样的解决方法,真的就能拯救12306吗?   “马云”的办法做到极致,就是让用户原本需要花几小时断断续续刷网站的体验,变成“秒杀”——没错,假设系统能力变成无限大,足以实时响应春运时最多每天一千万用户的每次鼠标点击,绝不崩溃的后果就是车票瞬间抢空。   要知道,2013年春运出行人数已经达到34亿,而2014年春运铁路运力不过才2.5亿人,而且12306只出售其中一半的票。这个数量级缺口注定导致12306的性能无论优化到何种地步,用户买到票的概率都不会提升,真实需求也得不到满足。不少人看到的,将是一个到达放票时间后,迅速告诉你“没票”的网站。   所以,“马云”能保证12306不崩溃,但“马云”并不能保证让网友坐上回家的火车。   没错,12306崩溃的实质,不单单是网站技术问题,而是供需矛盾并未得到解决。你说这个问题怎么解决?在春运火车票依然被国家和民众视为某种福利的前提下,除了秒杀和排队,真没好办法可以解决了。秒杀起码痛快些,不是吗?
发表于 2014-1-20 15:25:04 | 显示全部楼层
这个必须顶!   专业人才呐,让我茅塞顿开。
使用 高级模式(可批量传图、插入视频等)
您需要登录后才可以回帖 登录 | 注册

社区广场
屌丝女神必须关注的那些事!
  • 扶残助残显担当 ——访太平区政协委员、辽
  • 阜新市残联为残疾人办实事
  • 情暖新春 爱满助残
  • 阜新仁福康职业技能培训学校圆残疾人电商创
  • 锦瑞公司为下肢障碍儿童捐赠总价值32,000
  • 扶残助残显担当  ——访太平区政协委员、辽宁锦瑞科技有限公司董事长兼总经理刘春
  • 阜新市残联为残疾人办实事
  • 情暖新春 爱满助残
  • 阜新仁福康职业技能培训学校圆残疾人电商创业梦
手机触屏版 | 手机客户端 | 网站介绍 | 广告服务 | 免责声明 | 法律顾问 | 诚聘英才 | 工作证查验 | 友情链接 | 阜新人就上阜新网 返回顶部 Copyright © 2011-2013 FUXINWANG.COM 版权所有 本站仅提供网上自由讨论,内容均由网友原创或收集自互联网,所有个人言论并不代表本站立场,如发现有侵权行为,请及时与我们联系。
快速回复 返回顶部 返回列表