前台门户网站高并发架构设计方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前台网站架构设计方案
2015-6
目录
1设计思路 (3)
2系统架构设计 (4)
2.1网站总体架构 (4)
2.1.1网站的系统架构 (4)
2.1.2网站的软件架构 (6)
2.1.3网络拓扑结构 (7)
2.2负载均衡 (8)
2.2.1通过硬件实现负载均衡 (8)
2.2.2通过软件四层交换实现负载均衡 (8)
2.2.3通过反向代理服务器实现负载均衡 (8)
2.2.4Apache +tomcat集群实现负载均衡。 (11)
2.3缓存 (12)
2.3.1系统架构方面的缓存 (12)
2.3.2应用程序方面的缓存 (13)
2.4页面静态化 (14)
2.5数据库集群及表库散列 (15)
2.5.1数据库集群 (15)
2.5.2数据库及表的散列 (15)
2.6文件存储 (15)
2.6.1文件共享 (15)
2.6.2文件的多服务器自动同步 (16)
2.6.3图片服务器分离 (16)
2.7镜像 (16)
2.8WEB应用架构设计思路 (17)
2.8.1MVC架构示意 (18)
2.8.2Struts架构 (19)
3性能测试 (20)
3.1测试环境 (20)
3.2测试项目 (22)
3.2.1测试点 (22)
3.2.2测试结果要求 (22)
3.3测试结果 (22)
3.4结果分析 (23)
1 设计思路
为提高网站的高并发性能,提高开发效率及运营效率,主要按如下几个思路进行规划设计:
1)实现web请求的网络负载均衡的设计思路
a)通过硬件实现负载均衡。
b)通过第三方软件来实现负载均衡,同时实现页面请求的缓存。
c)通过web服务器的配置来实现负载均衡
即通过apache将客户请求均衡的分给tomcat1,tomcat2....去处理。
2)WEB应用架构设计思路
a)应用开发实现MVC架构三层架构进行web应用开发
b)采用第三方开源的CMS系统来实现网站内容的管理。
c)页面尽可能静态化以减少动态数据访问。
d)采用页面缓存机制和数据缓存来实现页面请求的缓冲和数据的缓存
3)数据存储的设计思想
a)数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库的集
群。
b)采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。
2 系统架构设计2.1 网站总体架构
2.1.1 网站的系统架构
1. 分层结构
2. 网络示意图
3. 网站架构设计说明
1)采用负载均衡器来实现硬件级的四层交换负载均衡,或采用LVS来实现软件的四层交换负载均衡。
2)通过Nigix实现反向代理服务器集群
3)同时搭建squid集群以作为静态页面的缓存。
4)通过1个apache+多个tomcat进行负载均衡配置,来组成web服务器集群。
5)采用独立的图片服务器集群来实现图片资源的存储及WEB请求。
6)采用HDFS来进行文件的共享访问,通过Rsync来实现远程文件同步。
7)在应用开发中采用基于Struts的MVC架构,同时采用缓存技术来提高动态页面的访问。
8)使页面尽可能静态化,引入CMS系统使网站进一步静态化。
9)对数据库采用生产数据库和查询数据库分离,同时采用oracle 的Rac技术来实现集群扩展。
10)通过镜像技术来实现不同网络服务商的接入速度问题。
持久层通讯层
消息中心
业务层数据层
主防火墙
备防火墙
光纤交换机
磁盘阵列柜磁盘阵列柜
负载均衡器1
负载均衡器2
备注:
1) 采用双防火墙双交换机做网络冗余,保障平台服务
采用双防火墙通知接通2线路互联网接入,设备之间采用VRRP 协议,在任何一个防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站的正运行,设备或网络恢复后,自动恢复。
采用双千兆交换机分别接在2台防火墙上,当某台设备或者网络链路发生故障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真实服务器的数量,交换机可以随时增加。
2) 采用硬件设备负载均衡器,实现网络流量的负载均衡
使用硬件设备负载均衡器,将网络流量均衡的分担到WEB 服务器集群各节点服务器,保障平台服务器资源均衡的使用。
3) 采用代理服务器,实现软件级的网络负载均衡。
4) 数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写与后台查询统计
进行分离,同时生产数据库采用rac 技术进行
2.2 负载均衡
2.2.1 通过硬件实现负载均衡
在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了
2.2.2 通过软件四层交换实现负载均衡
软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。
一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性。
2.2.3 通过反向代理服务器实现负载均衡
反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当WEB服务器的内容缓存器,反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。
目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的