摘自网易评论

---------------------------------------华丽的分割线--------------------------------------

12306首秀被骂的狗血喷头后铁道部找来IBM、阿里巴巴等大企业要解决方案,给出的条件是资金管够但是问题得解决。几大企业最后都拒绝了。12306开始自己尝试解决问题。他们发现市面上可以买到的成套解决方案都不足以应付春运购票负载,所以只能自己改进已有的数据库。以前12306用的是小型机,发现性能严重不足,遂改用x86系统+linux平台。最后他们的核心系统用了十几个节点的多路Xeon E7,每个节点配1TB内存,数据库全部在内存中运行。2013年春运,12306系统峰值负载11万tps,与2012年淘宝双11活动峰值负载相当,新的系统基本经受住了考验。

淘宝的问题是其系统架构是分散度较高的,各个订单之间关联度不大;而12306每出一张票都要对全线路做数据更新(因为一条线路存在多个站点),因此系统负载相较淘宝来说集中很多,直接搬淘宝的方案也无法解决问题。淘宝的应用类型决定了阿里巴巴可以通过部署大量的服务器来分散压力,但12306就不行。其实他们的核心系统的硬件成本不过数百万,不是他们不想采购更多服务器,而是买更多的服务器也没什么用途。最后,在经过软件层面的优化之后,12306的瓶颈其实是核心节点的CPU、内存性能。但是这个性能的提升不是朝夕的事情,而是受限于摩尔定律,基本上每两年才能翻一倍多些。

---------------------------------------华丽的分割线-------------------------------------

12306搞了一个高度中央集权的系统,过高的估计了服务器的能力,本应是调度服务器却被搞成了数据处理服务器,全国瞬间冲入的数据量,服务器怎么能承担的了?这就是这套系统失败的根本原因。他们本可以将全国个大铁路局建成用于数据处理的二级服务器,处理后的数据由中央服务器交互调度,甚至可以在各省建立三级服务器;原始设计缺少战略头脑,现在却满世界找理由,不可理喻。

---------------------------------------华丽的分割线--------------------------------------

摩尔定律在这里不适用。
首先架构有问题。如5楼所说,应在调度系统下功夫。其次,x86+linux平台的性能并不高,可选数据库和硬件结合在一起的综合性平台,这种系统内部已经针对自己的硬件做过优化,响应速度自然比不同厂商的集成系统要好。btw,DB在内存中运行对于这样的系统是必须的。硬件方面还可以选择大机,但必须软硬都提高才行。
此外,就大家反映的问题来看,session的处理方法也要提高。
纯个人见解,欢迎讨论,但不喜勿喷。

---------------------------------------华丽的分割线--------------------------------------

按线路热门程度,几条线路做一个小型数据库,热门线路单独数据库,机架换刀片,每条线路以站为单位,拆成分段票,在访问层做队列,这样每趟列车就算一千张,20站,才两万张车票,这数据大吗?

出问题也只影响一小部分,不至于整站都瘫了啊!上亿的设备抗不住登陆查询?连验证码都生成不出来有点说不过去了吧?

---------------------------------------华丽的分割线--------------------------------------

DB放在TMS的固态存储,它的颗粒速度是目前商业SSD的几千倍。