【IT168 评论】2012年春节,为了让每个归家的人都能更方便地购买到火车票,铁道部首次实行了12306网上实名订票制,据统计,在12306开通的7天,12306网站访问用户已占全球互联网用户的0.902%,每天点击量高达10亿人次。但是面对购票者访问量如潮水般涌入,12306订票系统明显有些招架不住,系统一再陷入崩溃。
其实,面对上亿的高并发访问量,网站背后架构所面临的技术挑战可想而知,首次试水的12306订票系统的表现如此脆弱也是在情理之中。由12306网站也引发了一些对构建高并发高访问量的网站架构的讨论,对此,IT168采访了某上市互联网公司网络部经理Eric,他解答了12306网站面临的一些挑战,并对高并发高访问网站的构建给出了自己的建议。
一.作为一个访问量如此高的网站,12306订票系统设计存在哪些挑战?
12306订票系统的构建肯定不只一家供应商来完成,各个不同供应商来实现各自的功能,最后将各个部分功能拼凑起来,实现整体的功能,这其中需要注意功能衔接上的问题。此外,12306网站的上线,在逻辑设计上,需要充分考虑到访问高峰访问量的压力,并对性能代码、UI等进行一些优化。
二.淘宝、京东等电商同样也出现过系统崩溃的现象,12306系统的瘫痪和此类电商的瘫痪有何异同?
一般而言,网站不能访问,问题可能是出于两方面:一方面,可能是系统的核心基础架构方面,核心数据层无法应对负载的压力;另一方面,可能是前端的web服务器在技术和容量预估上做的不足,比如之前只做了应对千万人访问的容量,而实际访问量却达到了上亿。此外在很多电商后台的数据库环境中,除了Linux环境,也有windows环境,这种异构的环境的系统稳定性要比完全的Linux系统的稳定性要逊色一点,需要对系统和代码进行优化。
三.对于构建此类高并发高访问的网站,在架构设计和技术方面应该注意哪些环节?
设计这类高并发高访问的网站系统,最主要的原则是要快,其中有3个环节值得重视:1.性能测试要充足,2.对用户访问量的评估要尽量精准,并提前做好应对的准备,3.对应用软件和系统优化,任何一步不合理的软件和系统步骤,被如此大的访问量跌价起来也会放大成严重的后果。
四.采用云计算平台(类似于Amazon之类的)来搭建这类网站,能带来怎样的效果?
利用云计算平台的确能起到提高资源利用率和节省成本的效果,但是云计算的价值还具有局限性,是否适用也要依照情况而定,对于小型的网站而言,投入的资金有限而且网站数据的敏感性不高,因此,采用云计算平台比较合适。而对于大型的电商以及12306这种实名制的订票系统来说,将核心的应用以及重要的数据放到云计算平台上,对这类网站而言还不太现实,主要原因是数据安全性的考虑。
五.部署虚拟化对这类高并发高访问网站的建设能起到哪些作用?
通过在物理服务器上部署虚拟机来更大限度的利用计算资源,其实虚拟化最大的作用体现在对计算资源的节省,在性能方面,虚拟化对系统的内存消耗比较大,因此,是否适合实施虚拟化也要分不同场景来判断,对于实时数据分析提取较多的网络动态架构而言,实施虚拟化时应慎重,因为实施虚拟化之后对系统应用程序资源、代码效率也提出了更高的要求,否者实施虚拟化反而会降低数据分析的实时性;而对于以静态页面为主的网站而言,建议可以尝试虚拟化。虚拟化的实施也具有一套规范的流程,第一步就是对整个系统进行评估,而在虚拟化软件的选择上也有商业虚拟化和开源虚拟化软件之分。