前台门户网站架构
设计方案
北京宽连十方数字技术有限公司
2010-7
1网站的性能瓶颈分析
网站的性能影响因素很多,下面主要从如下4个方面进行分析说明:
1)网络负载
a)公网负载
b)内网负载
2)WEB应用服务器性能
a)CPU
b)存储,I/O访问
c)内存
d)并发TCP/IP连接数
3)数据库服务器性能
a)数据库参数配置
b)服务器性能(CPU、内存、存储)
c)数据结构的合理性
4)不同WEB应用的处理方式而对不同的性能瓶颈
a)对于静态的网站:
静态的HTML页面严格地由标准的HTML标示语言构成,并不需要服务器端即时运算生成。这意味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资源。对于静态HTML的访问瓶颈为:网络带宽、磁盘I/O以及cache(高速缓冲存储器)。
b)对于动态页面
因为服务器解析动态页面必须在其传输到客户端前就通过服务器来进行解释,这样就会给应用服务器添加额外的性能消耗,如果进一步要访问数据库,则会增加数据库服务器的性能消耗,则动态页面还有额外的瓶颈:应用服务器的性能,数据库服务器的性能。
2系统架构设计
2.1总体思路
为提高网站的高并发性能,提高开发效率及运营效率,主要按如下几个思路进行规划设计:
2.1.1负载均衡
1)四层交换负载均衡:
采用负载均衡器来实现硬件级的四层交换负载均衡,或采用LVS来实现软件的四层交换负载均衡。
2)通过第三方软件来实现负载均衡,同时实现页面请求的缓存。
通过Nginx实现反向代理服务器集,同时网站架构搭建squid集以作为静态页面和图片的缓存。
3)通过web服务器的配置来实现负载均衡
即通过apache或是Nginx 将客户请求均衡的分给去处理
2.1.2WEB应用开发架构思路
1)应用开发实现MVC架构三层架构进行web应用开发
2)页面尽可能静态化以减少动态数据访问,如果是资讯类的网站可以考虑采用第三方开源的CMS系统来生成静态的内容页面。
3)采用Oscache实现页面缓存,采用Memcached实现数据缓存
4)采用独立的图片服务器集来实现图片资源的存储及WEB请求
2.1.3数据存储的设计思路
1)数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库的集。
2)采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。
2.1.4不同网络用户访问考虑
1)通过引入CDN来解决不同网络服务商的接入速度问题,一般只能解决静态页面的访问问题。
2)在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度问题。
2.2总体架构
2.2.1网站的系统分层架构
2.2.2网站的物理架构
2.2.3网站的开发架构
2.2.4网络拓扑结构
备注:
1)采用双防火墙双交换机做网络冗余,保障平台服务
采用双防火墙通知接通2线路互联网接入,设备之间采用VRRP协议,在任何一个防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站的正运行,设备或网络恢复后,自动恢复。
采用双千兆交换机分别接在2台防火墙上,当某台设备或者网络链路发生故障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真实服务器的数量,交换机可以随时增加。
2)采用硬件设备负载均衡器,实现网络流量的负载均衡
使用硬件设备负载均衡器,将网络流量均衡的分担到WEB服务器集各节点服务器,保障平台服务器资源均衡的使用。
3)采用代理服务器,实现软件级的网络负载均衡。
4)数据库服务器分离成生产数据库集和查询数据库集,实现生产读写与后台查询统计进行分离,同时生产数据库采用rac技术进行
2.3架构涉及技术的详解
2.3.1负载均衡
1.基于DNS的负载均衡--一个域名绑定多个IP
DNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址上的Web 服务器,从而达到负载均衡的目的。
这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡,DNS 服务器将Http请求平均地分配到后台的Web服务器上,而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的 Web服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS 请求分配到这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为24小时)。所以在国外最新的建设中心Web站点方案中,
已经很少采用这种方案了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。