技术开发 频道

12306铁道部网站不堪重负:性能优化攻略

        【IT168 技术】12306铁路客户服务网站,作为铁道部唯一指定官方火车售票网站,一直承受巨大并发访问量。统计显示,12306铁路客户服务网站,自1月5日起,连续5天日均点击数超过10亿次。仅1月9号一天,12306.cn的日点击量突破了14亿,这相当于平均全中国每个人都点击了一次。

  面对“世界靠前网站”,铁道部部长盛光祖之言,现在12306订票网站一天的点击量超过了14亿,相当于全中国每个人都点击了一次,可以说是“世界靠前网站”,但这个“世界靠前”要不得!

  这个“要不得”意味深长。一来说明铁路运力相对春运客流还是明显滞后,“一票难求”的局面远没有解决。二来铁道部长的如此低调行事,恐怕与备受指责甚至遭受谩骂的12306网站频繁瘫痪脱不了干系。

  我们看一下铁道部最近公布的官方信息。中国铁道部1月13日披露,新一代客票系统的规划和设计已经启动。包括即将引入云计算技术,以科学成熟的体系架构为基础,构建支撑超大规模并发交易、海量数据存储、灵活扩展、兼容性良好、安全可靠高效的综合信息系统。

  可见,铁道部已经承认12306网站采用了一个不够科学,尚未成熟的架构。那么,我们设想一下,怎样的架构才堪称完美?我们需要采取哪些优化措施呢?笔者在这里做一个小的盘点与总结。

  10亿点击率是瓶颈

  在用户通过12306网站登录或提交订单的时候,经常会遇到“当前访问用户过多,请稍后重试!”“对不起,当前提交订单用户过多,请稍后重试!”或“系统忙”这样的提示,需要不停地刷新,登录,让人又气愤又郁闷。为什么会出现这种情况?

  铁科院电子计算技术研究所副所长朱建生参与了铁路售票系统的前期设计到实施的整个过程,他介绍说,12306互联网购票是基于全路客票系统构建的,除了要承载12306网站购票、还要承载电话订票、车站窗口、自动售票机等一系列的售票渠道,为兼顾各售票渠道的公平和均衡,在售票高峰期,对互联网购票登录用户数和并发提交订单用户数进行上限控制。如果按用户数来看,按每分钟1万人。

  问题是,每分钟1万的上限根本就不能满足每天10亿次的点击量。面对如此之高的访问量,数据优化至关重要。

  Oracle数据库优化

  应该说,Oracle在数据稳定性以及千万级别的数据量上还是比较有保障的。从数据库的角度来看,一些常见的优化方案包括:数据库集群,做到数据分流与负载均衡;主从库,将关键性数据查询放在主库,非关键性数据查询放在从库;根据业务系统拆分数据库,提高数据访问效率。关于这些,可借鉴一些成熟的电商经验。

  数据库缓存策略优化

  无论是采用何种数据库,缓存策略的优化始终是绕不开的话题。从数据库缓存的角度,一些常见的优化方案包括:分布式数据缓存,减少数据库的查询次数。预先加载部分热点数据到cache中。

  Web前端优化

  除数据库本身与针对持久层的缓存优化策略外,Web前端尤其是JS与CSS的优化,也是一项非常重要的优化措施。从Web前端的角度,一些常见的优化方案包括:将CSS以及JS和图片使用CDN进行加速。对于验证码,应采用触发方式,可以考虑单独部署验证码校验服务,与应用系统隔离。

  业务流程优化

  在业务流程设计上,尽量做到事务精简,逻辑严密。比如订票流程和支付流程作为两个业务;将订单或者评论等业务拆分,达到录入和查询等业务分离等。

  据了解,为了便民利民,铁道部已启动新一代客票系统规划及设计。12306互联网售票系统也将基于新一代客票系统进行优化和进一步发展。铁道部称,新一代客票系统将在既有客票系统的基础之上,在服务方面,以旅客为中心,提供全方位的信息咨询、丰富的售票渠道、多元化的支付方式、个性化的旅客服务、快捷的进出站;在技术架构方面,引入云计算技术等。笔者希望,铁道部新一代客票系统能在技术架构,数据库设计,Web等方面,能充分考虑到以上优化措施,达到资源的合理分配,更好地服务广大旅客。

0
相关文章