《最全面的门户网站架构设计方案.docx》由会员分享,可在线阅读,更多相关《最全面的门户网站架构设计方案.docx(37页珍藏版)》请在第一文库网上搜索。
1、最全面的门户网站架构设计方案前台门户网站架构设计方案北京宽连十方数字技术有限公司2012-71 设计思路22 系统结构33 网络规划及性能计算错误!未定义书签。3.1 网络架构63.2 网络架构说明错误!未定义书签。3.2.1 使用双防火墙双交换机做网络冗余,保障平台服务63.2.2 使用硬件设备负载均衡器,实现网络流量的负载均衡63.3 系统测算错误!未定义书签。3.3.1 系统处理能力要求303.3.2 业务处理能力要求错误!未定义书签。3.3.3 系统话务模型错误!未定义书签。3.4 配置核算错误!未定义书签。3.4.1 数据库服务器性能核算错误!未定义书签。3.4.2 WEB服务器集群
2、性能核算错误!未定义书签。3.4.3 WEB服务器集群内存性能核算错误!未定义书签。3.4.4 网络带宽314 性能模拟测试及性能推算错误!未定义书签。4.1 测试环境错误!未定义书签。4.2 测试结果错误!未定义书签。4.2.1 1个客户端模拟不一致线与并发请求结果错误!未定义书签。4.2.2 10个客户端请求错误!未定义书签。4.3 结果分析错误!未定义书签。4.4 根据测试结果推算错误!未定义书签。4.5 设备清单314.5.1 硬件设备配置清单错误!未定义书签。4.5.2 设备技术规格错误!未定义书签。4.6 平台扩容的建议311网站的性能瓶颈分析网站的性能影响因素很多,下面要紧从如下
3、4个方面进行分析说明:1)网络负载a)公网负载b)内网负载2) WEB应用服务器性能a)CPUb)存储,I/O访问c)内存d)并发TCP/IP连接数3)数据库服务器性能a)数据库参数配置b)服务器性能(CPU、内存、存储)c)数据结构的合理性4)不一致WEB应用的处理方式而对不一致的性能瓶颈a)关于静态的网站:静态的HTM1页面严格地由标准的HTM1标示语言构成,并不需要服务器端即时运算生成。这意味着,对一个静态HTM1文档发出访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资源。关于静态HTM1的访问瓶颈为:网络带宽、磁盘I
4、/O与CaChe(高速缓冲存储器)。b)关于动态页面由于服务器解析动态页面务必在其传输到客户端前就通过服务器来进行解释,这样就会给应用服务器添加额外的性能消耗,假如进一步要访问数据库,则会增加数据库服务器的性能消耗,则动态页面还有额外的瓶颈:应用服务器的性能,数据库服务器的性能。2系统架构设计2.1 总体思路为提高网站的高并发性能,提高开发效率及运营效率,要紧按如下几个思路进行规划设计:2.1.1 负载均衡1)四层交换负载均衡:使用负载均衡器来实现硬件级的四层交换负载均衡,或者使用1VS来实现软件的四层交换负载均衡。2)通过第三方软件来实现负载均衡,同时实现页面请求的缓存。通过NginX实现反
5、向代理服务器集群,同时搭建SqUid集群以作为静态页面与图片的缓存。3)通过Web服务器的配置来实现负载均衡即通过apache或者是MginX将客户请求均衡的分给tomcat1,tomcat2.去处理。2.1.2 WEB应用开发架构思路1)应用开发实现MVC架构三层架构进行Web应用开发2)页面尽可能静态化以减少动态数据访问,假如是资讯类的网站能够考虑使用第三方开源的CMS系统来生成静态的内容页面。3)使用OSCaChe实现页面缓存,使用MemCaChed实现数据缓存4)使用独立的图片服务器集群来实现图片资源的存储及WEB请求2.1.3 数据存储的设计思路1)数据库拆分,把生产数据库与查询数据
6、库分离,对生产数据库使用RAC实现数据库的集群。2)使用高效的网络文件共享策略,使用图片服务器来实现页面的图片存储。2.1.4 不一致网络用户访问考虑1)通过引入CDN来解决不一致网络服务商的接入速度问题,通常只能解决静态页面的访问问题。2)在不一致运营商机房部署服务器,通过镜像技术来实现不一致网络服务商的接入速度问题。2.2 总体架构WEB服务器应用级缓存架构2.2.1 网站的系统分层架构软件四层交换1VS反向代理软件(数据缓存)NginxproxySquidSquidcacheNginxcache硬件四层交换负载均衡器负载均衡数据持久层页面缓存数据缓存(ibatis)(OSCache)(M
7、emcached)文件宾翼NFSHDFS数据库生产数据库查询数据库数据存储图片服务器集群Meb服务器集群AWeb服务器集群BSqUid服务器集群2.2.3网站的开发架构通讯层薪业务层持久层数据层VVAPPUSHMMS.SMS短信群发器消息中心数据存储彩信群发器WEB服务器后台支撑模块文件存储ORMHDFSibatis查询数据库基于StrUtS的MVC框架页面缓存(Memcached)(RAC)(RAC)C3p()1111ApacheTomatVVEB容器统计支撑模块Mode1TomatHTM1静态化模块一,Jj服务JI务器n厦务善1BAJR务n代理服务叁集群(Nginx)网站服务叁集群图片服务
8、器集群应用服务叁集群KS1展务n光纤交换机:交换机IDBJR务器组管理终端磁盘阵列柜磁盘阵列柜备注:1)使用双防火墙双交换机做网络冗余,保障平台服务使用双防火墙通知接通2线路互联网接入,设备之间使用VRRP协议,在任何一个防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站的正运行,设备或者网络恢复后,自动恢复。使用双千兆交换机分别接在2台防火墙上,当某台设备或者者网络链路发生故障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真实服务器的数量,交换机能够随时增加。2)使用硬件设备负载均衡器,实现网络流量的负载均衡使用硬件设备负载均衡器,将网络流量均衡的分担到WEB服
9、务器集群各节点服务器,保障平台服务器资源均衡的使用。3)使用代理服务器,实现软件级的网络负载均衡。4)数据库服务器分离成生产数据库集群与查询数据库集群,实现生产读写与后台查询统计进行分离,同时生产数据库使用me技术进行2.3 架构涉及技术的详解2.3.1 负载均衡1 .基于DNS的负载均衡-一个域名绑定多个IPDNS负载均衡技术是最早的负载均衡解决方案,它是通过DNS服务中的随机名字解析来实现的,在DNS服务器中,能够为多个不一致的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,关于同一个名字,不一致的客户机会得到不一致的地址,它们也就访问不一致地址上
10、的Web服务器,从而达到负载均衡的目的。2 .通过硬件四层交换实现负载均衡在硬件四层交换产品领域,有一些知名的产品能够选择,比如A1teOn、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能与很灵活的管理能力。YahOO中国当初接近2000台服务器使用了三四台AIteor1就搞定了3 .通过软件四层交换实现负载均衡软件四层交换我们能够使用1inUX上常用的1VS来解决,1VS就是1inUXVirtua1Server,他提供了基于心跳线heartbeat的实时灾难应对解决方案,提高系统的鲁棒性,同时可供了灵活的虚拟VIP配置与管理功能,能够同时满足多种应用需求,这关于分布式的系统来说
11、必不可少。一个典型的使用负载均衡的策略就是,在软件或者者硬件四层交换的基础上搭建SqUid集群,这种思路在很多大型网站包含搜索引擎上被使用,这样的架构低成本、高性能还有很强的扩张性。4 .通过反向代理服务器实现负载均衡反向代理服务器又称之WEB加速服务器,它位于WEB服务器的前端,充当WEB服务器的内容缓存器,反向代理服务器是针对WEB服务器设置的,后台WEB服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清晰后台WEB服务器是如何组织架构的。当互联网用户请求WEB服务时,DNS将请求的域名解析为反向代理服务器的IP地址,这样UR1请求将被发送到反向代理服务器,由反向代理服务器
12、负责处理用户的请求与应答、与后台WEB服务器交互。利用反向代理服务器减轻了后台WEB服务器的负载,提高了访问速度,同时避免了因用户直接与WEB服务器通信带来的安全隐患。目前有许多反向代理软件,比较有名的有Nginx与Squid。1) SquidSquid是一个开源的软件,利用它的反向代理技术能够提高网站系统的访问速度,下面将重点介绍Squid反向代理的实现原理与在提高网站性能方面的应用。SqUid反向代理服务器位于本地WEB服务器与Internet之间,组织架构如下图:WebServer客户端请求访问WEB服务时,DNS将访问的域名解析为Squid反向代理服务器的IP地址,这样客户端的UR1请
13、求将被发送到反向代理服务器。假如Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端,否则反向代理服务器将向后台的WEB服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。 1ast-Modified:告诉反向代理页面什么时间被修改 Expires:告诉反向代理页面什么时间应该从缓冲区中删除 Cache-Contro1:告诉反向代理页面是否应该被缓冲Pragma:用来包含实现特定的指令,最常用的是Pragmamo-Cache注:DNS的轮询机制将某一个域名解析为多个IP地址。2) Nginx在国内,已经有新浪博客、新浪播客、搜狐
14、通行证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用Nginx服务器。Nginx特点如下:1)工作在OS1模型的第7层(应用层)2)高并发连接官方测试能够支撑5万并发连接,在实际生产环境中跑到23万并发连接数。3)内存消耗少在3万并发连接下,开启的10个NginX进程才消耗150M内存(15M*1O=I5OM)。4)配置文件非常简单风格跟程序一样通俗易懂。5)成本低廉NginX为开源软件,能够免费使用。而购买F5BIG-IP、NetSCaIeI等硬件负载均衡交换机则需要十多万至几十万人民币。6)支持ReWrite重写规则7)内置的健康检查功能假如NginxProxy后端的某台Web服务器宕机了,不可能影响前端访问。8)节约带宽支持GZIP压缩,能够添加浏览器本地缓存的Header头。9)稳固性高用于反向代理,宕机的概率微乎其微。3) NginX+squid页面缓存来实现反向代理负载均衡通过NginX反向代理与SqUid缓存实现动静分离的架构图如下所示:NginX反向代理负我均衡动静分离条统架构图何途:s”Sion共享)外网IP:61.1.