并发大型网站架构设计

一个大型的网站网站应该由以下6个子系统组成html

 

负载均衡系统nginx

反向代理系统数据库

Web服务器系统服务器

分布式存储系统网络

底层服务系统架构

数据库集群系统并发

 

为何要作高并发系统设计?负载均衡

事实上,针对于任何单一的网络服务器程序,其可承受的同时链接数目是有理论峰值的,经过C++中对TSocket的定义类型:word,咱们能够断定这个链接理论峰值是65535,也就是说,你的单个服务器程序,最多能够承受6万多的用户同时链接。可是,在实际应用中,能达到一万人的同时链接并能保证正常的数据交换已是很不容易了,一般这个值都在2000到5000之间,能达到上万已经很不错了。目前的门户网站动辄几千万的访问量,因此,高并发的系统架构在所不免。分布式

 

总体架构高并发

真实中的网站架构也许并不如此也能够实现高性能。可是高性能的网站莫不过如此。以下图所示。


第一  负载均衡系统

负载均衡系统分为硬件和软件两种。

硬件负载均衡效率高,可是价格贵,好比F5等。

软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统低,不过对于流量通常或稍大些网站来说也足够使用,好比lvs。

 

 

第二  反向代理系统

目前广泛使用Squid或者nginx,或者Lighttpd,Varish。

这四者又各自有很大的差别。

Squid:主要用来作反向代理,使用内存+硬盘

Nginx:能够反向代理+负载均衡+WWW解析

Lighttpd:反向代理能力通常,处理FastCGI比较好,消耗内存很小

Varish:主要作内存的反向代理,性能最优

 

第三  Web服务器系统

由Apache负责解析PHP内容,也能够用Nginx,或者Lighttpd,相对来讲Apache比较稳定。

 

第四  分布式存储系统

存储量很大,常常会达到单台服务器没法提供的规模,好比相册、视频等应用。所以须要专业的大规模存储系统。

 

第五  底层服务系统

根据各自须要由C/C++开发设计供上层CGI调用。

 

第六  数据库系统

1)使用MySQL数据库,考虑到Web应用的数据库读多写少的特色,咱们主要对读数据库作了优化,提供专用的读数据库和写数据库,在应用程序中实现读操做和写操做分别访问不一样的数据库。

2)使用同步机制实现快速将主库(写库)的数据库复制到从库(读库)。一个主库对应多个从库,主库数据实时同步到从库。

3)写数据库有多台,每台均可以提供多个应用共同使用,这样能够解决写库的性能瓶颈问题和单点故障问题。


其它:http://wenku.baidu.com/view/281da442b307e87101f69646.html

相关文章
相关标签/搜索