(企业管理案例)前台门户网站架构设计方案(我们公司的真实案例)(DOC 42页).doc
《(企业管理案例)前台门户网站架构设计方案(我们公司的真实案例)(DOC 42页).doc》由会员分享,可在线阅读,更多相关《(企业管理案例)前台门户网站架构设计方案(我们公司的真实案例)(DOC 42页).doc(42页珍藏版)》请在三一办公上搜索。
1、北京宽连十方数字技术有限公司2010-7 目 录1设计思路32系统结构33网络规划及性能计算33.1网络架构33.2网络架构说明43.2.1采用双防火墙双交换机做网络冗余,保障平台服务43.2.2采用硬件设备负载均衡器,实现网络流量的负载均衡43.3系统测算43.3.1系统处理能力要求43.3.2业务处理能力要求43.3.3系统话务模型43.4配置核算53.4.1数据库服务器性能核算53.4.2WEB服务器集群性能核算53.4.3WEB服务器集群内存性能核算53.4.4网络带宽54性能模拟测试及性能推算64.1测试环境64.2测试结果84.2.11个客户端模拟不同线和并发请求结果84.2.21
2、0个客户端请求84.3结果分析94.4根据测试结果推算94.5设备清单114.5.1硬件设备配置清单114.5.2设备技术规格124.6平台扩容的建议121 网站的性能瓶颈分析网站的性能影响因素很多,下面主要从如下4个方面进行分析说明:1) 网络负载a) 公网负载b) 内网负载2) WEB应用服务器性能a) CPUb) 存储,I/O访问c) 内存d) 并发TCP/IP连接数3) 数据库服务器性能a) 数据库参数配置b) 服务器性能(CPU、内存、存储)c) 数据结构的合理性4) 不同WEB应用的处理方式而对不同的性能瓶颈a) 对于静态的网站:静态的HTML页面严格地由标准的HTML标示语言构成
3、,并不需要服务器端即时运算生成。这意味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资源。对于静态HTML的访问瓶颈为:网络带宽、磁盘I/O以及cache(高速缓冲存储器)。b) 对于动态页面因为服务器解析动态页面必须在其传输到客户端前就通过服务器来进行解释,这样就会给应用服务器添加额外的性能消耗,如果进一步要访问数据库,则会增加数据库服务器的性能消耗,则动态页面还有额外的瓶颈:应用服务器的性能,数据库服务器的性能。2 系统架构设计2.1 总体思路为提高网站的高并发性能,提高开发效率及运营效率,
4、主要按如下几个思路进行规划设计:2.1.1 负载均衡1) 四层交换负载均衡:采用负载均衡器来实现硬件级的四层交换负载均衡,或采用LVS来实现软件的四层交换负载均衡。2) 通过第三方软件来实现负载均衡,同时实现页面请求的缓存。通过Nginx实现反向代理服务器集群,同时搭建squid集群以作为静态页面和图片的缓存。3) 通过web服务器的配置来实现负载均衡即通过apache或是Nginx 将客户请求均衡的分给tomcat1,tomcat2.去处理。2.1.2 WEB应用开发架构思路1) 应用开发实现MVC架构三层架构进行web应用开发2) 页面尽可能静态化以减少动态数据访问,如果是资讯类的网站可以
5、考虑采用第三方开源的CMS系统来生成静态的内容页面。3) 采用Oscache实现页面缓存,采用Memcached实现数据缓存4) 采用独立的图片服务器集群来实现图片资源的存储及WEB请求2.1.3 数据存储的设计思路1) 数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库的集群。2) 采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。2.1.4 不同网络用户访问考虑1) 通过引入CDN来解决不同网络服务商的接入速度问题,一般只能解决静态页面的访问问题。2) 在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度问题。2.2 总体架构2.2.
6、1 网站的系统分层架构2.2.2 网站的物理架构2.2.3 网站的开发架构2.2.4 网络拓扑结构备注:1) 采用双防火墙双交换机做网络冗余,保障平台服务采用双防火墙通知接通2线路互联网接入,设备之间采用VRRP协议,在任何一个防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站的正运行,设备或网络恢复后,自动恢复。采用双千兆交换机分别接在2台防火墙上,当某台设备或者网络链路发生故障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真实服务器的数量,交换机可以随时增加。2) 采用硬件设备负载均衡器,实现网络流量的负载均衡使用硬件设备负载均衡器,将网络流量均衡的分担到WE
7、B服务器集群各节点服务器,保障平台服务器资源均衡的使用。3) 采用代理服务器,实现软件级的网络负载均衡。4) 数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写与后台查询统计进行分离,同时生产数据库采用rac技术进行2.3 架构涉及技术的详解2.3.1 负载均衡1. 基于DNS的负载均衡-一个域名绑定多个IPDNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址,它们也就访问不同地址
8、上的Web 服务器,从而达到负载均衡的目的。这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡,DNS 服务器将Http请求平均地分配到后台的Web服务器上,而不考虑每个Web服务器当前的负载情况;如果后台的Web服务器的配置和处理能力不同,最慢的 Web服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web服务器出现故障,DNS服务器仍然会把DNS 请求分配到这台故障服务器上,导致不能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受Web服务,并且由于
9、DNS缓存的原因,所造成的后果要持续相当长一段时间(一般DNS的刷新周期约为24小时)。所以在国外最新的建设中心Web站点方案中,已经很少采用这种方案了。2. 通过硬件四层交换实现负载均衡在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初接近2000台服务器使用了三四台Alteon就搞定了3. 通过软件四层交换实现负载均衡软件四层交换我们可以使用Linux上常用的LVS来解决,LVS就是Linux Virtual Server,他提供了基于心跳线heartbeat的实时灾难应对解
10、决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以同时满足多种应用需求,这对于分布式的系统来说必不可少。一个典型的使用负载均衡的策略就是,在软件或者硬件四层交换的基础上搭建squid集群,这种思路在很多大型网站包括搜索引擎上被采用,这样的架构低成本、高性能还有很强的扩张性。4. 通过反向代理服务器实现负载均衡反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当WEB服务器的内容缓存器,反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当
11、互联网用户请求 WEB 服务时,DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB 服务器通信带来的安全隐患。目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Squid
12、是由美国政府大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持HTTP,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。1) Squid Squid 是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度,下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如下图:客户端请求访问 WEB 服务时,DNS 将访问的域名解析为 Squid 反向代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到反向代理服务器。如果 S
13、quid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。Squid 反向代理一般只缓存可缓冲的数据(比如 html 网页和图片等),而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面, 有四个最重要 HTTP 头标记: Last-Modified: 告诉反向代理页面什么时间被修改 Expires: 告诉反向代理页面什么时间应该从缓冲区中删除 Cache-Con
14、trol: 告诉反向代理页面是否应该被缓冲 Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-cache 注:DNS 的轮询机制将某一个域名解析为 多个IP地址。2) NginxNginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。Nginx 已经在俄罗斯最大的门户网站 Rambler Media(www.rambler.ru)上运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱词
15、霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用 Nginx 服务器。Nginx 特点如下:1) 工作在OSI模型的第7层(应用层)2) 高并发连接官方测试能够支撑5万并发连接,在实际生产环境中跑到23万并发连接数。 3) 内存消耗少在3万并发连接下,开启的10个Nginx 进程才消耗150M内存(15M*10=150M)。 4) 配置文件非常简单风格跟程序一样通俗易懂。 5) 成本低廉Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。 6) 支持Rewrite重写规则能够根据域名、URL的不同,将 H
16、TTP 请求分到不同的后端服务器群组。 7) 内置的健康检查功能如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。 8) 节省带宽支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。 9) 稳定性高用于反向代理,宕机的概率微乎其微。 3) Nginx+squid页面缓存来实现反向代理负载均衡通过Nginx反向代理和squid缓存实现动静分离的架构图如下所示:5. Apache +tomcat集群实现负载均衡。使用 apache和多个tomcat 配置一个可以应用的web网站,用Apache进行分流,把请求按照权重以及当时负荷分tomcat1,tom
17、cat2.去处理,要达到以下要求:1) Apache 做为HttpServer ,通过mod_jk连接器连接多个 tomcat 应用实例,并进行负载均衡。2) 同时还要配置session复制,也就是说其中任何一个tomcat的添加的session,是要同步复制到其它tomcat, 集群内的tomcat都有相同的session,并为系统(包括 Apache 和 tomcat)设定 Session 超时时间。2.3.2 缓存1. 系统架构方面的缓存1) Squid缓存架构方面使用Squid进行缓存。注:SQUID使用了LM算法,LM就是页面Header里时间(Date)和Last-Modified
18、时间的差。Date一般是Squid从后面取页面的时间,Last-Modified 一般是页面生成时间。2) Nginx的缓存功能Nginx从0.7.48版本开始,支持了类似Squid的缓存功能;缓存把URL及相关组合当作Key,用md5编码哈希后保存;Nginx的Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面;采用MMAP实现,设置的缓存区大小不能超过物理内存+SWEB的值3) 基于memcached的缓存nginx对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。location /mem/ if (
19、$uri /mem/(0-9A-Za-z_*)$ ) set $memcached_key $1; memcached_pass 192.168.1.2:11211; expires 70;这个配置会将Nginx目前没有写入memcached的任何机制,所以要往memcached里写入数据得用后台的动态语言完成,可以利用404定向到后端去写入数据。Nginx传统缓存的缺点也是它和squid等缓存软件的不同之特色,所以也可看作其优点。在生产应用中它常常用作和squid的搭档,squid对于带?的链接往往无法阻挡,而nginx能将其访问拦住,例如:nginx会非常老实地将链接形式保存到文件系统中,
20、这样对于一个链接,可以很方便地查阅它在缓存机器上的缓存状态和内容,也可以很方便地和别的文件管理器如rsync等配合使用,它完完全全就是一个文件系统结构。2. 应用程序方面的缓存1) OSCacheOSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能,OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API-OSCache
21、API给你全面的程序来控制所有的OSCache特性。永久缓存-缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群-集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期-你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。OSCache是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持。OSCache的特点:1) 缓存任何对象:你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。 2) 拥有全面的API:OSCach
22、e API允许你通过编程的方式来控制所有的OSCache特性。 3) 永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器的多次生命周期间缓存创建开销昂贵的数据。 4) 支持集群:集群缓存数据能被单个的进行参数配置,不需要修改代码。 5) 缓存过期:你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不能满足需要时)。2) Memcachedmemcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。Memcached是以Key/Value的形式单个对象缓存。3) 自主开发的内
23、存数据缓存服务a) 独立进程方式的缓存服务对于一些常用的动态数据通过开发程序服务缓存在内存中,提供给其他子系统调用,如下面的数据就可以通过这样方式进行缓存。1) 用户基本信息及状态的信息缓冲2) 列表缓存,就像论坛里帖子的列表3) 记录条数的缓存,比如一个论坛板块里有多少个帖子,这样才方便实现分页。4) 复杂一点的group,sum,count查询,比如积分的分类排名b) 集成在WEB应用中的内存缓存在web应用中对于热点的功能,考虑使用完全装载到内存,保证绝对的响应速度,对于需要频繁访问的热点数据,采用集中缓存(多个可以采用负载均衡),减轻数据库的压力,比如:很多配置信息,操作员信息等等。2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 企业管理案例前台门户网站架构设计方案我们公司的真实案例DOC 42页 企业管理 案例 前台 门户 网站 架构 设计方案 我们 公司 真实 DOC 42
链接地址:https://www.31ppt.com/p-4658104.html