公开 内部公开 机密 绝密√
2.2.2 网站的物理架构
用户浏览页面负载均衡器1...服务器1服务器2服务器3服务器2代理服务器集群(Nginx)服务器n服务器2...服务器1服务器2服务器1服务器2服务器1服务器2服务器1服务器n图片服务器集群Web服务器集群AWeb服务器集群BSquid服务器集群
4/10/2013
版权所有,侵权必究All rights reserved 第
公开 内部公开 机密 绝密√
2.2.3 网站的开发架构
通讯层消息中心业务层WEB服务器基于struts 的MVC框架持久层数据层数据存储ORMI/O文件存储PUSH消息中心WEB容器请求数据数据库DB连接池生产数据库(RAC)JDBC(Memcached)...发器C3p0生产数据库(RAC)发器后台支撑模块静态化模块模块模块查询数据库
4/10/2013
版权所有,侵权必究All rights reserved 第
公开 内部公开 机密 绝密√
2.2.4 网络拓扑结构
主防火墙备防火墙主交换机VRRP备交换机负载均衡器1负载均衡器2...服务器2服务器1服务器n服务器1服务器n服务器2服务器2服务器2...服务器2服务器1服务器n服务器1服务器n服务器1服务器n服务器1服务器2代理服务器集群(Nginx)网站服务器集群图片服务器集群应用服务器集群光纤交换机生产DB服务器集群查询DB服务器组管理终端光纤交换机磁盘阵列柜磁盘阵列柜备注:
1) 采用双防火墙双交换机做网络冗余,保障平台服务
采用双防火墙通知接通2线路互联网接入,设备之间采用VRRP协议,在任何一个防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站的正运行,设备或网络恢复后,自动恢复。
采用双千兆交换机分别接在2台防火墙上,当某台设备或者网络链路发生故障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真实服务器的数量,交换机可以随时增加。
2) 采用硬件设备负载均衡器,实现网络流量的负载均衡
使用硬件设备负载均衡器,将网络流量均衡的分担到WEB服务器集群各节点服务器,保障平台服务器资源均衡的使用。
3) 采用代理服务器,实现软件级的网络负载均衡。
4) 数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写与后台查询统计
进行分离,同时生产数据库采用rac技术进行
4/10/2013
版权所有,侵权必究All rights reserved 第
公开 内部公开 机密 绝密√
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站点方案中,已经很少采用这种方案了。 2. 通过硬件四层交换实现负载均衡
在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了 3. 通过软件四层交换实现负载均衡
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性。 4. 通过反向代理服务器实现负载均衡
反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当WEB服务器的内容缓存器,反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用
4/10/2013
版权所有,侵权必究All rights reserved
第
公开 内部公开 机密 绝密√
反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。
目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
Squid是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。 1) Squid
Squid 是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度,下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。
Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如下图:
客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该请求
4/10/2013
版权所有,侵权必究All rights reserved
第