【IT168 专稿】2012年春节,铁道部推出12306网站,进行网络实名购票。每一个返乡人原以为能买着一张回家的火车票,但结果还是大失所望。7天内,12306网站访问用户已占全球互联网用户的0.902%,每天点击量高达10亿人次,系统一度支撑不住如此庞大的访问量而陷入崩溃,针对12306的责难也不绝于耳。
对此,中国铁路客户服务中心透露,目前,铁道部已启动了新一代客票系统的规划和设计。考虑采用云计算架构,对现有的客票系统进行全面的优化和改造。对此,IT168采访了某互联网公司系统管理员林学谦,针对大型高并发高性能网站架构广泛征集意见,他为12306网站提出优化建议,并对更多有需要构建大型高并发高性能网站的用户提供参考。
12306订票网站存在哪些需求特点和挑战?
总体而言,12306订票系统具有三个明显的特点:一、高峰时段并发读写量巨大; 二、区域请求明显不均匀;三、数据库数据量巨大。
系统面临的挑战和难点:一、如何处理高峰时期的并发读写;二、区域性页面访问的加速(CDN)部署;三、海量数据的存取速度和灾备。
国内的大型网站还包括淘宝、京东、新浪等,您认为12306的访问模式和淘宝、京东存在哪些异同?
前端都有CDN,将静态内容放到这一级,并配合其他CDN的应用模式;下一级负载均衡应该是DNS,将流量均匀分配到不同的IP;再下一级应该是LVS,将访问请求分发到不同的物理服务器,然后再下一层是存储层。但与12306订票系统相比,国内的大型网站已经具备了一定技术和管理优势:
一、访问规模压力,高峰时期不在一个量级;
二、有做近路由线路的CDN页面端的加速处理,用户访问产品页面速度比较快;
三、技术研发团队力量强劲,网罗着一批国内最好的一些技术人才。
从百万级、到千万级并发PV的网站,在构架和部署方面会存在哪些差异?以12306为例,您认为12306的需求属于哪个级别?
12306网站的点击量属于千万pv级别,底层架构上一定要有网络带宽的保障,要求前端和库都有更好的业务承载能力(通过调高服务器配置或增加服务器数量),负载平衡器(前端调度和数据库负载平衡),有更好的智能业务调度能力来平衡负载,并且在一定程度下要保有一定的冗余服务器数量,可在业务量增加的情况下,进行业务集群承载能力的扩容。
一个大型的高并发高性能网站架构需要从哪些层面去考虑和优化?
要解决性能的问题,有很多种常用的方法,以下列举一类提升性能的方式:
一、服务器配置和环境调优;
二、负载平衡服务器(或硬件或二次开发的);
三、数据库结构设计;
四、中间件优化;
五、数据读写预估;
六、介于前端和数据库间的类memcache层开发和使用。
部署大型的高并发高性能网站架构需要注意哪些问题?存在哪些挑战?
一:智能负载平衡的重要性。数据分区可以在一定程度上减轻负载,但是无法减轻热销商品的负载,对于火车票来说,可以认为是大城市的某些主干线上的车票。这就需要使用数据镜像来减轻负载。使用数据镜像,你必然要使用负载均衡,在后端,我们可能很难使用像路由器上的负载均衡器,因为那是均衡流量的,因为流量并不代表服务器的繁忙程度。因此,我们需要一个任务分配系统,其还能监控各个服务器的负载情况。
二:业务机器冗余的必要性。一方面完美的负载均衡很重要,另一个静态的方法的致命缺陷是如果有一台计算服务器死机了,或是我们需要加入新的服务器。