《
初识高并发网站系统架构_网站开发》文章地址:http://www.tfxk.com/wangyesheji/jianzhanjingyan/110C242012.htm
上面提供的多少个解决思路在必定水平上也象征着更大的投入,并且这样的解决思路具备瓶颈,不很好的扩大性,下面我从低本钱、高机能和高扩大性的角度来说说我的一些教训。
--> 我在Cernet做过拨号接入平台的搭建,而后在Yahoo3721负载搜索引擎前端平台开发,又在猫扑处理过大型社区猫扑大杂烩的架构进级等工作, 同时自己接触和开发过不少大中型网站的模块,因而在大型网站应答高负载和并发的解决方案上有一些积聚和经验,可以和大家一起探讨一下。
缓存一词搞技术的都接触过,很多处所用到缓存。网站架构和网站开发中的缓存也是异常主要。这里先讲述最根本的两种缓存。高等和散布式的缓存在后面讲述。
3、数据库集群和库表散列
1、HTML静态化
4、缓存
6、负载均衡
同时,html静态化也是某些缓存策略使用的手腕,对于系统中频繁使用数据库查问但是内容更新很小的应用,可以斟酌使用html静态化来实现,比如论坛 中论坛的公用设相信息,这些信息目前的主流论坛都可以进行后盾管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这 局部内容进行后台更新的时候进行静态化,这样防止了大量的数据库访问要求。
大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法基本解决大型网站面临的高负载和高并提问题。
5、镜像
一个典范的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在良多大型网站包含搜寻引擎上被采用,这样的架构低成本、高性能还有很强的扩张性,随时往架构里面增减节点都十分轻易。这样的架构我筹备空了专门具体收拾一下和大家探讨。
在硬件四层交换产品范畴,有一些著名的产品可以抉择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,可能提供无比优良的性能和很灵巧的管理能力。Yahoo中国当初濒临2000台服务器使用了三四台Alteon就搞定了。
上面提到的数据库集群因为在架构、成本、扩张性方面都会受到所采用DB类型的限度,于是我们需要从应用程序的角度来考虑改良系统架构,库表散列是常用并 且最有效的解决方案。我们在应用程序中装置业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者 功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就可以低成本的晋升系统的性能并且有很好的扩展性。sohu的论坛就是采用了这样的 架构,将论坛的用户、设置、帖子等信息进行数据库分离,而后对帖子、用户依照板块和ID进行散列数据库和表,终极可以在配置文件中进行简单的配置便能让系 统随时增添一台低成本的数据库进来弥补系统性能。
其实大家都知道,效力最高、耗费最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简略的办法其实也是 最有效的方法。但是对大量内容并且频繁更新的网站,我们无奈全体手动去挨个实现,于是呈现了咱们常见的信息宣布系统CMS,像我们常访问的各个门户站点 的消息频道,甚至他们的其他频道,都是通过信息发布体系来管理和实现的,信息发布系统可以实现最简单的信息录入主动天生静态页面,还能具备频道治理、权限 管理、自动抓取等功能,对于一个大型网站来说,领有一套高效、可管理的CMS是必不可少的。
负载平衡将是大型网站解决高负荷访问和大批并发恳求采取的最终解决措施。
第四层交换使用第三层和第四层信息包的报头信息,依据运用区间辨认业务流,将全部区间段的业务流调配到适合的利用服务器进行处置。 第四层交换功效就象 是虚IP,指向物理服务器。它传输的业务遵从的协定多种多样,有HTTP、FTP、NFS、Telnet或其余协议。这些业务在物理服务器基本上,须要复 杂的载量均衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交流中的应用区间则由源端和终端IP地址、TCP和UDP端口独特 决议。
架构方面的缓存,对Apache比拟熟悉的人都能晓得Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方法均可以有效的进步Apache的拜访响应才能。
2、图片服务器分别
负载均衡技术发展了多年,有很多专业的服务提供商和产品可以取舍,我个人接触过一些解决方法,其中有两个架构可以给大家做参考。
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到丑化后果,所有的页面均寄存在一个目录下,这样的网站对系 统架构、性能的要求都很简单,跟着互联网业务的一直丰盛,网站相干的技术经由这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技 术更是波及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的请求,已经不是本来简单的html静态网站所能 比较的。
大型网站都有庞杂的应用,这些应用必需使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能浮现出来,这时一台数据库将很快无法知足应用,于是我们需要使用数据库集群或者库表散列。
硬件四层交换
镜像是大型网站常采用的提高性能和数据保险性的方式,镜像的技巧可 以解决不同网络接入商和地区带来的用户访问速度差别,比如ChinaNet和EduNet之间的差异就促使了很多网站在教导网内搭建镜像站点,数据进行定 时更新或者实时更新。在镜像的细节技术方面,这里不论述太深,有很多专业的现成的解决架构和产品可选。也有便宜的通过软件实现的思路,好比Linux上的 rsync等工具。
除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再从新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如斯。
在数据库集群方面,很多数据库都有自己的解决方案,Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是相似的方案,你使用了什么样的DB,就参考相应的解决方案来实行即可。
大家知道,对于Web 服务器来说,不论是Apache、IIS还是其他容器,图片是最消费资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他 们都有独破的图片服务器,甚至很多台图片服务器。这样的架构可以下降提供页面访问请求的服务器系统压力,并且可以保证系统不会由于图片问题而瓦解,在应用 服务器和图片服务器上,可以进行不同的配置优化,比如apache在配置ContentType的时候可以尽量少支撑,尽可能少的LoadModule, 保障更高的系统消耗和履行效率。
对于大型网站来说,前面提到的每个方法可能都会被同时使用到,我这里先容得比较浅易,详细实现进程中许多细节还需要大家缓缓熟悉和领会,有时一个很小的squid参数或者apache参数设置,对于系统性能的影响就会很大,盼望大家一起探讨,到达抛砖引玉之效。
软件四层交换
网站程序开发方面的缓存,Linux上供给的Memory Cache是常用的缓存接口,可以在web开发中使用,比方用Java开发的时候就能够调用MemoryCache对一些数据进行缓存跟通信共享,一些大 型社区使用了这样的架构。另外,在应用web语言开发的时候,各种语言基础都有本人的缓存模块和方式,PHP有Pear的Cache模块,Java就更多 了,.net不是很熟习,信任也确定有。
大家知道了硬件四层交换机的原理后,基于OSI模型来实现的软件四层交换也就应运而生,这样的解决计划实现的原理一致,不外性能稍差。然而满意一定量的压力仍是熟能生巧的,有人说软件实现方式实在更机动,处理能力完整看你配置的熟悉能力。
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾害应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚构VIP配置和管理功能,可以同时满 足多种应用需要,这对于分布式的系统来说必不可少。
相关的主题文章:
(责任编辑:网站建设)
初识高并发网站系统架构_网站开发相关文章