大型高并发高负载网站的系统架构

我在CERNET过拨号接入平台的搭建,而后在Yahoo&3721从事搜索引擎前端开,又在MOP大型社区猫扑大杂烩的架构升等工作,同自己接触和开发过不少大中型网站的模,因此在大型网站应对负载和并的解决方案上有一些累和经验,可以和大家一起探一下。
一个小型的网站,比如个人网站,可以使用最
简单html态页面就实现了,配合一些片达到美化效果,所有的面均存放在一个目下,这样的网站架构、性能的要求都很简单,随着互业务的不断丰富,网站相关的技术经过这些年的展,已经细分到很的方方面面,尤其于大型网站来,所采用的技更是涉及面非常广,从硬件到件、言、数据WebServer、防火等各个域都有了很高的要求,已不是原来简单html网站所能比的。     

大型网站,比如门户网站。在面大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服器、高性能的数据、高效率的言、有高性能的Web容器。但是除了几个方面,没法根本解决大型网站面的高负载和高并发问题

上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具,没有很好的展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验

1HTML
大家都知道,效率最高、消耗最小的就是化的html面,所以我尽可能使我的网站上的面采用静态页面来实现个最简单的方法其也是最有效的方法。但是于大量内容并且繁更新的网站,我无法全部去挨个实现,于是出了我的信息布系CMS,像我访问的各个门户站点的新闻频道,甚至他的其他道,都是通信息布系来管理和实现的,信息布系可以实现简单的信息入自生成静态页面,能具备频道管理、限管理、自抓取等功能,于一个大型网站来有一套高效、可管理的CMS是必不可少的。

除了门户和信息型的网站,于交互性要求很高的社区型网站来,尽可能的静化也是提高性能的必要手段,将社区内的帖子、文章实时的静化,有更新的候再重新静化也是大量使用的策略,Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。目前很多博客也都实现了静化,我使用的Blog程序WordPress没有静化,所以如果面负载访问www.toplee.com一定不能承受 /

html化也是某些存策略使用的手段,于系繁使用数据库查询但是内容更新很小的用,可以考使用html化来实现,比如论坛论坛的公用置信息,些信息目前的主流论坛都可以行后台管理并且存再数据中,些信息其大量被前台程序用,但是更新率很小,可以考部分内容行后台更新的行静化,这样避免了大量的数据库访问请求。

html化的候可以使用一种折中的方法,就是前端使用动态实现,在一定的策略下行定化和定判断用,个能实现很多灵活性的操作,我开的台球网站故人居(www.8zone.cn)就是使用了这样的方法,我通过设定一些html化的时间间隔来对动态网站内容存,达到分担大部分的力到静态页面上,可以用于中小型网站的架构上。故人居网站的地址:http://www.8zone.cn便提一下,有喜台球的朋友多多支持我个免网站:)

2片服器分
大家知道,
Web器来,不管ApacheIIS是其他容器,片是最消耗源的,于是我有必要将片与行分离,是基本上大型网站都会采用的策略,他都有独立的片服器,甚至很多台片服器。这样的架构可以降低提供访问请求的服器系统压力,并且可以保不会因为图问题而崩

用服器和片服器上,可以行不同的配置化,比Apache在配置ContentType候可以尽量少支持,尽可能少的LoadModule,保更高的系消耗和行效率。

我的台球网站故人居8zone.cn也使用了片服器架构上的分离,目前是仅仅是架构上分离,物理上没有分离,由于没有钱买更多的服:),大家可以看到故人居上的接都是img.9tmd.com或者img1.9tmd.comURL

另外,在理静态页面或者js访问方面,可以考使用Memcached是常用的存方案,不少web言都提供memcache访问接口,phpperlcjava都有,可以在web中使用,可以实时或者Cron的把数据、象等内容存,策略非常灵活。一些大型社区使用了这样的架构。

另外,在使用web言开候,各种言基本都有自己的存模和方法,PHPPearCacheeAccelerator加速和Cache要知名的ApcXCache(国人开的,支持!)php存模Java就更多了,.net不是很熟悉,相信也肯定有。

5
像是大型网站常采用的提高性能和数据安全性的方式,像的技可以解决不同网接入商和地域来的用户访问速度差异,比ChinaNetEduNet的差异就促使了很多网站在教育网内搭建像站点,数据行定更新或者实时更新。在像的细节方面,里不述太深,有很多专业成的解决架构和品可。也有廉价的通过软实现的思路,比如Linux上的rsync等工具。

6负载
负载均衡将是大型网站解决高访问和大量并发请求采用的极解决法。

负载均衡技术发展了多年,有很多专业的服提供商和品可以选择,我个人接触一些解决方法,其中有两个架构可以大家做参考。另外有关初负载DNS循和较专业CDN架构就不多了。

6.1 硬件四
第四使用第三和第四信息包的报头信息,根据用区间识别业务流,将整个区段的业务流分配到合适的用服理。 第四功能就象是虚IP,指向物理服器。它传输业务服从的协议多种多,有HTTPFTPNFSTelnet或其他协议业务在物理服器基上,需要复量平衡算法。在IP世界,业务类型由TCPUDP端口地址来决定,在第四中的用区间则由源端和IP地址、TCPUDP端口共同决定。

在硬件四换产域,有一些知名的品可以选择,比AlteonF5等,品很昂,但是物有所,能提供非常秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服器使用了三四台Alteon就搞定了。

6.2 件四
大家知道了硬件四机的原理后,基于OSI模型来实现件四也就运而生,这样的解决方案实现的原理一致,不性能稍差。但是足一定量的是游刃有余的,有说软实现方式其更灵活,理能力完全看你配置的熟悉能力。

件四可以使Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat实时难应对解决方案,提高系棒性,同可供了灵活的虚VIP配置和管理功能,可以同时满足多种用需求,这对于分布式的系必不可少。

一个典型的使用负载均衡的策略就是,在件或者硬件四的基上搭squid集群,种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能有很扩张性,随往架构里面增减点都非常容易。这样的架构我准空了专门详细整理一下和大家探

总结
   对于大型网站来,前面提到的每个方法可能都会被同使用到,Michael里介得比,具体实现过程中很多细节还需要大家慢慢熟悉和体会,有一个很小的squid参数或者apache参数置,于系性能的影响就会很大,希望大家一起讨论,达到抛引玉之效。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值