近日,铁道部官方订票网站(www.12306.cn)被传言未曾模拟演练过春运订票,引发争议。连日来,订票网多次“瘫痪”急坏了网友,也受到业内质疑。记者就此采访了某大型门户网站技术工程师张工。该工程师认为,“12306”网站在上线前进行春运订票模拟演练其实只需一周时间,即可发现问题并进行改进。
购票网站“春运级演练”只需一周时间
针对目前网上说的“12306”网站没有提前模拟演练过春运订票,张工指出,这种模拟演练的技术术语为“性能测试”。他认为,“12306”网站应该“演练”过,不过是“功能测试”,只要该网站能通过订票流程实现订票目的即为测试成功。但是没有做过“性能测试”,即指该系统最高能承载的并发访问量和并发交易量数值。根据行规,大型系统上线前一般都会对可预见的问题进行“性能测试”。
张工认为,如果“12306”网站在上线前进行了“春运级演练”,当时就能够直接发现问题,为进一步改进留下足够时间。“性能测试”做起来并不复杂,有专业的软件可以测试,也有一些公司提供此类服务。张工告诉记者,“如果铁路系统有专门的测试环境,一般来说,从准备测试到出测试报告最长一周内即可完成”。
“12306”网站软件性能或存有问题导致“瘫痪”
从1月1日至今,“12306”网站日均点击次数超10亿,仅1月9日就超14亿,注册用户超千万,网站多次“瘫痪”。有网友称4小时能买到票就算幸运。有媒体估算,乘客平均猛刷网站超500次才能买一张票。
“12306”网站为何多次“瘫痪”?张工分析,从技术上讲涉及很多因素,主要是带宽不够、前端调度出问题或是服务器软硬件系统故障等。
带宽不够会使网友访问不了或是访问速度慢,慢速访问会造成长连接消耗更多资源,进而拖垮系统,因此用户会有网站“瘫痪”的感觉。张工认为,目前从“12306”网页访问速度来看,非订票页面和登录页面访问速度都比较稳定,所以带宽应该是充足的。
而前端调度出问题,一般是由DNS服务器或LVS负载均衡系统在高并发下无法处理请求引起。张工说:“这个问题很容易解决,购买高端设备替换即可。12306网站出现故障已经有段时间,如果是调度设备问题,应该早已解决。”排除以上两种故障原因,张工推论可能是软件有问题或者硬件机器不够。硬件机器可以购买,随时添加,但现在问题依然存在,最大的可能性就是软件设计的问题。 “12306”的软件系统应该在设计时还不具备横向扩展能力,也就是说“给再多的机器,软件也用不起来”,所以现在只能硬撑着,短期内解决不了。如果要解决问题,软件需要重新架构和编写。
10亿访问量有“刷票机”的功劳 网上交易须保证“票、钱”一致
目前状况下,如何改善才能满足网友购票需求,技术层面如何保障?
张工认为,订票网十几亿的访问量“水分”很多。网友买不到就要刷新,现在还有刷票机加入。可以预见,未来的访问量还会更高,但过高的访问量主要是“刷票机”的功劳。“如果系统做得好,网友可以直接登录购买,查询可以得到即时答复,就不会有人频繁地刷屏,更不会使用‘刷票机’,实际访问量会少很多。现在每日网络和电话订单不过200万,即使网络订单增加到1000万,每人打开20个页面才能完成交易,访问量也就达到2亿。再加上网友在网站查询打开的页面(查询从填写到出结果共2个页面),数量也远远小于10亿。
张工建议,首先,对于涉及网上支付的系统,要在技术上保证交易的一致性。即给票扣钱,不给票不扣钱,必须保证“票、钱”一致,不能出错。专业术语称作“事务的原子性”,也就是说对于一个交易,不管中间多少步骤,必须像个原子一样不可分割,要么都做,要么都不做,不能只做一半。
其次,对于像“12306”网站这类大规模的线上交易系统,尤其是存在定时抢票,大量并发请求的处理是最大的挑战。“12306”网站的业务比较简单,仅售火车票,而且车票的车次、数量、时间等都是基本固定。在设计时可以按照车次进行分库分表,把数据分散;或者将主要事务控制从数据库剥离,做个简单的中间系统来统一调度,如将车票信息预先分配好,只是没有和购买者关联,中间系统只需要根据预先处理好的记录根据请求在内存中快速完成行锁,就算预定成功。如果出现偶然性错误,也可以通过后端调度,重新归票。
张工告诉记者,对于抢票问题,有点类似“秒杀”,对于热门车票,可以借鉴“秒杀”的技术,使用队列或者过滤已经铁定拿不到票的用户。
网站屡“瘫痪” 网友希望铁道部尽快优化网站建设
网友普遍认为,铁道部订票网站没有模拟演练过春运订票,是该网站运营商的一个失误。在目前的情况下,应该尽快找办法解决问题,方便旅客购票。
也有部分网民认为,春运期间铁道部订票网“瘫痪”是因为网友需求大,十几亿的点击量确实会给网站带来压力,这是技术问题,不能怪罪在铁道部头上,但铁道部应该积极促成网站的优化与改建。
同时,也有网友对此情况表示理解,“雪域游人”认为,电话订票、网络订票,火车票实名制虽然遇到一些坎坷,但这确实是今年春运一大进步,大家应多些耐心和宽容。
看浙江新闻,关注浙江在线微信
凡注有"浙江在线"或电头为"浙江在线"的稿件,均为浙江在线独家版权所有,未经许可不得转载或镜像;授权转载必须注明来源为"浙江在线",并保留"浙江在线"的电头。