
2012年春运,铁道部在全路启用互联网售票系统12306.cn。然而上线不久,即落入尴尬局面——网站时常陷入瘫痪状态,用户无法登陆,或登陆后无法购票,甚至显示支付成功却没能买到票。
诸多问题集中爆发,12306一时间成为口诛笔伐的对象。各种技术讨论在网上激烈展开,网站建设招标的往事更让铁道部背上“肥水不流外人田”的名声,备受公众质疑。
“让人能够在互联网上就能买到火车票,对于铁道部而言,这是值得肯定的进步。”多位受访的技术专家均对财新记者表示,“但是铁路售票系统的建设也需要更加科学和透明,包括网络售票系统的招标、票务信息等。按照信息化的规律办事,才能做得更好。”
系统设计先天不足
从2011年12月28日开始预售春运火车票开始,短短数日内,12306成为了中国最炙手可热的网站。
中国铁路客户服务中心建设运营相关专家在给人民网的相关解读中公布了一组数据:“从1月5日起,12306网站连续5天日均点击数超过10亿次,访问量环比上月激增10余倍。根据专业互联网分析网站Alexa 1月12日发布的统计数据,7天内访问www.12306.cn网站的用户占全球互联网用户的0.902%。”
铁道部部长盛光祖在武汉视察春运时也称,“12306网站一天的点击量超过14亿。”而一位了解12306网站设计内情的人士向财新记者透露,“最高一天的点击量达到19亿。”
暴增的访问量使得12306网站经常性陷入瘫痪状态,无法登陆、订单无法提交、系统忙等提示不断出现。
最早,疑点集中在带宽上,认为是带宽不够导致了访问异常。中国铁路客户服务中心称,既有互联网接入带宽明显不足,造成网络拥塞,高峰时间段用户访问网站时页面打开缓慢或出现超时报错的情况,影响用户的购票体验。铁道部信息技术中心副总工程师李舒扬也表示,12306网站的带宽已经从2011年6月的400M增加到了现在的1.5G。
这一说法很快就受到了很多网站工程师、技术人员的质疑,“这不只是带宽和硬件的问题,更大的问题出在了网站的系统架构上。”
在网上诸多的技术争论帖子中,“大规模并发事务处理能力”这一概念成为焦点。“事实证明,目前的12306网站无法完成大规模、高并发的订单处理”,这是众多技术人员达成一致的观点。但是,问题究竟出在哪个环节,外界无从知晓。
“从前端页面,到后端的数据处理,是一个非常复杂的系统的架构。看不到相关的架构模式、设备参数、数据及算法等,很难判断到底是哪一个环节出问题了。”一位资深的网站架构师告诉财新记者,任何一个方面出问题,都可能造成网站瘫痪的情况,但只有开发、运营维护的内部人员才能了解出问题的具体环节。
负责12306网站开发和运营维护的铁道部信息中心和铁道科学院电子计算技术研究所一直未就网站瘫痪问题作具体说明。
外界在技术层面的猜测和争论极多,如查询与支付操作的同步异步问题,票务数据库的一致性问题,应用服务器和基础数据库的缓存架构等等。
但是,在清华大学计算机与信息管理中心主任蒋东兴看来,12306网站的首要问题是忽视了业务模式的设计,“没有科学的业务模式,靠技术架构来解决问题效果有限,且代价太大。”
蒋东兴说,现在的12306网站是用了一种“抢时间”的业务模式,在每天的8点、10点、12点和15点放票,人们一窝蜂登陆12306来抢票。
相对于数量有限的火车票,人们春节回家的需求显得刚性且迫切,所以“抢”成为了关键,刷不到票的不会甘心,持续点击刷新页面;更有甚者,写出脚本利用机器人自动刷新页面。春运高峰时段的放票日期,超过10亿的PV就是这么来的,而其中大部分都是无效点击。也有媒体统计称,平均500次点击才能买到一张火车票。
铁道部对互联网售票系统要面对的高峰访问量及流量显然也预估不足,为12306今日的困境埋下了隐患。“当时设计方案时,预计整个系统的峰值流量1个多G就够了,没想到后来瞬间流量超过了2G;原先设计的一天点击量是最多10亿,现在最高是一天达到19亿,完全超出了想象。”上述了解12306网站设计内情的人士表示。
李舒扬接受新华社记者采访时也坦言,“由于在系统设计时,对春运期间互联网购票需求估计不足,导致在节前春运售票过程中,互联网售票日交易量超过系统设计能力(最高达到166万笔)时,系统部分时段性能下降,客户体验不佳。”据财新记者了解,当初系统的设计目标是满足日售票交易100万笔。
系统设计对现实情况的预估不足,加上业务模式的错误,以及可能存在的系统架构的缺陷,造就了当前12306网站老是陷入瘫痪的窘境。