版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网站架构设计方案目 录TOC o 1-3 h z u HYPERLINK l _Toc267644488 1设计思思路 PAGEREF _Toc267644488 h 3 HYPERLINK l _Toc267644489 2系统结结构 PAGEREF _Toc267644489 h 3 HYPERLINK l _Toc267644490 3网络规规划及性能能计算 PAGEREF _Toc267644490 h 3 HYPERLINK l _Toc267644491 3.1网网络架构 PAGEREF _Toc267644491 h 3 HYPERLINK l _Toc267644492 3.2
2、网网络架构说说明 PAGEREF _Toc267644492 h 4 HYPERLINK l _Toc267644493 3.2.11采用双防防火墙双交交换机做网网络冗余,保保障平台服服务 PAGEREF _Toc267644493 h 4 HYPERLINK l _Toc267644494 3.2.22采用硬件件设备负载载均衡器,实实现网络流流量的负载载均衡 PAGEREF _Toc267644494 h 4 HYPERLINK l _Toc267644495 3.3系系统测算 PAGEREF _Toc267644495 h 4 HYPERLINK l _Toc267644496 3.3.1
3、1系统处理理能力要求求 PAGEREF _Toc267644496 h 4 HYPERLINK l _Toc267644497 3.3.22业务处理理能力要求求 PAGEREF _Toc267644497 h 4 HYPERLINK l _Toc267644498 3.3.33系统话务务模型 PAGEREF _Toc267644498 h 4 HYPERLINK l _Toc267644499 3.4配配置核算 PAGEREF _Toc267644499 h 5 HYPERLINK l _Toc267644500 33.4.11数据库服服务器性能能核算 PAGEREF _Toc26764450
4、0 h 5 HYPERLINK l _Toc267644501 3.4.22WEB服务务器集群性性能核算 PAGEREF _Toc267644501 h 5 HYPERLINK l _Toc267644502 3.4.33WEB服务务器集群内内存性能核核算 PAGEREF _Toc267644502 h 5 HYPERLINK l _Toc267644503 3.4.4网络带宽宽 PAGEREF _Toc267644503 h 5 HYPERLINK l _Toc267644504 4性能模模拟测试及及性能推算算 PAGEREF _Toc267644504 h 6 HYPERLINK l _T
5、oc267644505 4.1测测试环境 PAGEREF _Toc267644505 h 6 HYPERLINK l _Toc267644506 4.2测测试结果 PAGEREF _Toc267644506 h 8 HYPERLINK l _Toc267644507 4.2.111个客户端端模拟不同同线和并发发请求结果果 PAGEREF _Toc267644507 h 8 HYPERLINK l _Toc267644508 4.2.2210个客户户端请求 PAGEREF _Toc267644508 h 8 HYPERLINK l _Toc267644509 4.3结结果分析 PAGEREF _
6、Toc267644509 h 9 HYPERLINK l _Toc267644510 4.4根根据测试结结果推算 PAGEREF _Toc267644510 h 9 HYPERLINK l _Toc267644511 4.5设设备清单 PAGEREF _Toc267644511 h 11 HYPERLINK l _Toc267644512 4.5.11硬件设备备配置清单单 PAGEREF _Toc267644512 h 11 HYPERLINK l _Toc267644513 4.5.22设备技术术规格 PAGEREF _Toc267644513 h 12 HYPERLINK l _Toc26
7、7644514 4.6平平台扩容的的建议 PAGEREF _Toc267644514 h 12网站的性能能瓶颈分析析网站的性能能影响因素素很多,下下面主要从从如下4个方方面进行分分析说明:网络负载公网负载内网负载WEB应用用服务器性性能CPU存储,I/O访问内存并发TCPP/IP连连接数数据库服务务器性能数据库参数数配置服务器性能能(CPUU、内存、存储)数据结构的的合理性不同WEBB应用的处处理方式而而对不同的的性能瓶颈颈对于静态的的网站:静态的HTTML页面面严格地由由标准的HHTML标标示语言构构成,并不不需要服务务器端即时时运算生成成。这意味味着,对一一个静态HHTML文文档发出访访问
8、请求后后,服务器器端只是简简单地将该该文档传输输到客户端端。从服务务器运行的的那个时间间片来看,这这个传输过过程仅仅占占用了很小小的CPUU资源。对对于静态HHTML的的访问瓶颈颈为:网络络带宽、磁磁盘I/OO以及caache(高速缓冲冲存储器)。对于动态页页面因为服务器器解析动态态页面必须须在其传输输到客户端端前就通过过服务器来来进行解释释,这样就就会给应用用服务器添添加额外的的性能消耗耗,如果进进一步要访访问数据库库,则会增增加数据库库服务器的的性能消耗耗,则动态态页面还有有额外的瓶瓶颈:应用用服务器的的性能,数数据库服务务器的性能能。系统架构设设计总体思路为提高网站站的高并发发性能,提提
9、高开发效效率及运营营效率,主主要按如下下几个思路路进行规划划设计:负载均衡四层交换负负载均衡:采用负载均均衡器来实实现硬件级级的四层交交换负载均均衡,或采采用LVSS来实现软软件的四层层交换负载载均衡。通过第三方方软件来实实现负载均均衡,同时时实现页面面请求的缓缓存。通过Ngiinx实现现反向代理理服务器集集群,同时时搭建sqquid集集群以作为为静态页面面和图片的的缓存。通过webb服务器的的配置来实实现负载均均衡即通过appachee或是Ngginx 将客户请请求均衡的的分给toomcatt1,toomcatt2去处理理。WEB应用用开发架构思思路应用开发实实现MVCC架构三层层架构进行行
10、web应应用开发页面尽可能能静态化以以减少动态态数据访问问,如果是是资讯类的的网站可以以考虑采用用第三方开开源的CMMS系统来来生成静态态的内容页页面。采用Osccachee实现页面面缓存,采采用Memmcachhed实现现数据缓存存采用独立的的图片服务务器集群来来实现图片片资源的存存储及WEEB请求数据存储的的设计思路路数据库拆分分,把生产产数据库和和查询数据据库分离,对对生产数据据库采用RRAC实现现数据库的的集群。采用高效的的网络文件件共享策略略,采用图图片服务器器来实现页页面的图片片存储。不同网络用用户访问考考虑通过引入CCDN来解解决不同网网络服务商商的接入速速度问题,一一般只能解解
11、决静态页页面的访问问问题。在不同运营营商机房部部署服务器器,通过镜镜像技术来来实现不同同网络服务务商的接入入速度问题题。总体架构网站的系统统分层架构网站的物理理架构网站的开发发架构网络拓扑结结构备注:采用双防火火墙双交换换机做网络络冗余,保保障平台服服务采用双防火火墙通知接接通2线路路互联网接接入,设备备之间采用用VRRPP协议,在在任何一个个防火墙、互联网发发生故障后后均可自动动将流量切切换到另一一端,保证证网站的正正运行,设设备或网络络恢复后,自自动恢复。采用双千兆兆交换机分分别接在22台防火墙墙上,当某某台设备或或者网络链链路发生故故障后,好好设备自动动接管已坏坏设备的工工作,不影影响网
12、站的的整体运行行,根据业业务及真实实服务器的的数量,交交换机可以以随时增加加。采用硬件设设备负载均均衡器,实实现网络流流量的负载载均衡使用硬件设设备负载均均衡器,将将网络流量量均衡的分分担到WEEB服务器器集群各节节点服务器器,保障平平台服务器器资源均衡衡的使用。采用代理服服务器,实实现软件级级的网络负负载均衡。数据库服务务器分离成成生产数据据库集群和和查询数据据库集群,实实现生产读读写与后台台查询统计计进行分离离,同时生生产数据库库采用raac技术进进行架构涉及技技术的详解解负载均衡基于DNSS的负载均均衡-一一个域名绑绑定多个IIPDNS负载载均衡技术术是最早的的负载均衡衡解决方案案,它是
13、通通过DNSS服务中的的随机名字字解析来实实现的,在在DNS服服务器中,可可以为多个个不同的地地址配置同同一个名字字,而最终终查询这个个名字的客客户机将在在解析这个个名字时得得到其中的的一个地址址。因此,对对于同一个个名字,不不同的客户户机会得到到不同的地地址,它们们也就访问问不同地址址上的Weeb 服务务器,从而而达到负载载均衡的目目的。这种技术的的优点是,实实现简单、实施容易易、成本低低、适用于于大多数TTCP/IIP应用;但是,其其缺点也非非常明显,首首先这种方方案不是真真正意义上上的负载均均衡,DNNS 服务务器将Htttp请求求平均地分分配到后台台的Webb服务器上上,而不考考虑每个
14、WWeb服务务器当前的的负载情况况;如果后后台的Weeb服务器器的配置和和处理能力力不同,最最慢的 WWeb服务务器将成为为系统的瓶瓶颈,处理理能力强的的服务器不不能充分发发挥作用;其次未考考虑容错,如如果后台的的某台Weeb服务器器出现故障障,DNSS服务器仍仍然会把DDNS 请请求分配到到这台故障障服务器上上,导致不不能响应客客户端。最最后一点是是致命的,有有可能造成成相当一部部分客户不不能享受WWeb服务务,并且由由于DNSS缓存的原原因,所造造成的后果果要持续相相当长一段段时间(一一般DNSS的刷新周周期约为224小时)。所以在在国外最新新的建设中中心Webb站点方案案中,已经经很少采
15、用用这种方案案了。通过硬件四四层交换实实现负载均均衡在硬件四层层交换产品品领域,有有一些知名名的产品可可以选择,比比如Altteon、F5等,这这些产品很很昂贵,但但是物有所所值,能够够提供非常常优秀的性性能和很灵灵活的管理理能力。YYahooo中国当初初接近20000台服服务器使用用了三四台台Alteeon就搞搞定了通过软件四四层交换实实现负载均均衡软件四层交交换我们可可以使用LLinuxx上常用的的LVS来来解决,LLVS就是是Linuux Viirtuaal Seerverr,他提供供了基于心心跳线heeartbbeat的的实时灾难难应对解决决方案,提提高系统的的鲁棒性,同同时可供了了灵
16、活的虚虚拟VIPP配置和管管理功能,可可以同时满满足多种应应用需求,这这对于分布布式的系统统来说必不不可少。一个典型的的使用负载载均衡的策策略就是,在在软件或者者硬件四层层交换的基基础上搭建建squiid集群,这这种思路在在很多大型型网站包括括搜索引擎擎上被采用用,这样的的架构低成成本、高性性能还有很很强的扩张张性。通过反向代代理服务器器实现负载载均衡反向代理服服务器又称称为 WEEB 加速速服务器,它它位于 WWEB 服服务器的前前端,充当当WEB服务务器的内容容缓存器,反向代理理服务器是是针对 WWEB 服服务器设置置的,后台台 WEBB 服务器器对互联网网用户是透透明的,用用户只能看看到
17、反向代代理服务器器的地址,不不清楚后台台 WEBB 服务器器是如何组组织架构的的。当互联联网用户请请求 WEEB 服务务时,DNNS 将请请求的域名名解析为反反向代理服服务器的 IP 地地址,这样样 URLL 请求将将被发送到到反向代理理服务器,由由反向代理理服务器负负责处理用用户的请求求与应答、与后台 WEB 服务器交交互。利用用反向代理理服务器减减轻了后台台 WEBB 服务器器的负载,提提高了访问问速度,同同时避免了了因用户直直接与 WWEB 服服务器通信信带来的安安全隐患。目前有许多多反向代理理软件,比比较有名的的有 Ngginx 和 Sqquid 。Nginxx 是由 Igorr Sy
18、ssoev 为俄罗斯斯访问量第第二的 RRambller.rru 站点点开发的,是是一个高性性能的 HHTTP 和反向代代理服务器器,也是一一个 IMMAP/PPOP3/SMTPP 代理服服务器。Squidd是由美国国政府大力力资助的一一项研究计计划,其目目的为解决决网络带宽宽不足的问问题,支持持HTTPP,HTTTPS,FFTP 等等多种协议议,是现在在 Uniix 系统统上使用、最多功能能也最完整整的一套软软体。Squidd Squidd 是一个个开源的软软件,利用用它的反向向代理技术术可以提高高网站系统统的访问速速度,下面面将重点介介绍 Sqquid 反向代理理的实现原原理和在提提高网站
19、性性能方面的的应用。Squidd反向代理理服务器位位于本地 WEB 服务器和和 Intterneet 之间间 , 组组织架构如如下图:客户端请求求访问 WWEB 服服务时,DDNS 将将访问的域域名解析为为 Squuid 反反向代理服服务器的 IP 地地址,这样样客户端的的 URLL 请求将将被发送到到反向代理理服务器。如果 SSquidd 反向代代理服务器器中缓存了了该请求的的资源,则则将该请求求的资源直直接返回给给客户端,否否则反向代代理服务器器将向后台台的 WEEB 服务务器请求资资源,然后后将请求的的应答返回回给客户端端,同时也也将该应答答缓存在本本地,供下下一个请求求者使用。Squi
20、dd 反向代代理一般只只缓存可缓缓冲的数据据(比如 htmll 网页和和图片等),而而一些 CCGI 脚脚本程序或或者 ASSP、JSSP 之类类的动态程程序默认不不缓存。它它根据从 WEB 服务器返返回的 HHTTP 头标记来来缓冲静态态页面, 有四个个最重要 HTTPP 头标记记:Last-Modiifiedd: 告诉诉反向代理理页面什么么时间被修修改Expirres: 告诉反向向代理页面面什么时间间应该从缓缓冲区中删删除Cachee-Conntroll: 告诉诉反向代理理页面是否否应该被缓缓冲Pragmma: 用用来包含实实现特定的的指令,最最常用的是是 Praagma:no-ccach
21、ee 注:DNSS 的轮询机制制将某一个个域名解析析为 多个个IP地址址。NginxxNginxx (“engiine xx”) 是俄俄罗斯人IIgor Sysooev(塞塞索耶夫)编写的一一款高性能能的 HTTTP 和和反向代理理服务器。Nginxx 已经在在俄罗斯最最大的门户户网站 Rammblerr Meddia(wwww.rrambller.rru)上运运行了4年年时间,同同时俄罗斯斯超过200%的虚拟拟主机平台台采用Ngginx作作为反向代代理服务器器。在国内,已已经有新浪浪博客、新新浪播客、搜狐通行行证、网易易新闻、网网易博客、金山逍遥遥网、金山山爱词霸、校内网、YUPOOO相册、
22、豆瓣、迅迅雷看看等等多家网站站、频道使使用 Ngginx 服务器。Nginxx 特点如如下:工作在OSSI模型的的第7层(应用层)高并发连接接官方测试能能够支撑55万并发连连接,在实实际生产环环境中跑到到23万万并发连接接数。 内存消耗少少在3万并发发连接下,开开启的100个Ngiinx 进进程才消耗耗150MM内存(115M*110=1550M)。 配置文件非非常简单风格跟程序序一样通俗俗易懂。 成本低廉Nginxx为开源软软件,可以以免费使用用。而购买买F5 BBIG-IIP、NeetScaaler等等硬件负载载均衡交换换机则需要要十多万至至几十万人人民币。 支持Rewwritee重写规则
23、则能够根据域域名、URRL的不同同,将 HHTTP 请求分到到不同的后后端服务器器群组。 内置的健康康检查功能能如果 Ngginx Proxxy 后端端的某台 Web 服务器宕宕机了,不不会影响前前端访问。 节省带宽支持 GZZIP 压压缩,可以以添加浏览览器本地缓缓存的 HHeadeer 头。 稳定性高用于反向代代理,宕机机的概率微微乎其微。 Nginxx+squiid页面缓存来实现现反向代理理负载均衡衡通过Ngiinx反向向代理和ssquidd缓存实现现动静分离离的架构图如下下所示:Apachhe +tommcat集集群实现负载均均衡。使用 appachee和多个ttomcaat 配置置一
24、个可以以应用的wweb网站站,用Appachee进行分流流,把请求求按照权重重以及当时时负荷分ttomcaat1,ttomcaat2去处理理,要达到到以下要求求:Apachhe 做为为HttppServver ,通通过modd_jk连连接器连接接多个 ttomcaat 应用用实例,并并进行负载载均衡。同时还要配配置sesssionn复制,也也就是说其其中任何一一个tommcat的的添加的ssessiion,是是要同步复复制到其它它tomccat, 集群内的的tomccat都有有相同的ssessiion,并并为系统(包包括 Appachee 和 ttomcaat)设定定 Sesssionn 超时
25、时时间。缓存系统架构方方面的缓存存Squidd缓存架构方面面使用Sqquid进进行缓存。注:SQUUID使用用了LM算算法,LMM就是页面面Headder里时时间(Daate)和和Lastt-Moddifieed时间的的差。Daate一般般是Squuid从后后面取页面面的时间,LLast-Modiifiedd 一般是是页面生成成时间。Nginxx的缓存功功能Nginxx从0.77.48版版本开始,支支持了类似似Squiid的缓存存功能;缓存把URRL及相关关组合当作作Key,用用md5编编码哈希后后保存;Nginxx的Webb缓存服务务只能为指指定URLL或状态码码设置过期期时间,不不支持类似
26、似Squiid的PUURGE指指令,手动动清除指定定缓存页面面;采用MMAAP实现,设设置的缓存存区大小不不能超过物物理内存+SWEBB的值基于memm HYPERLINK /tag/cache/ cachhed的缓缓存nginxx对 HYPERLINK /tag/memcache/ memmcachhed有所所支持,但但是功能并并不是特别别之强,性性能上还是是非常之优优秀。locattion /memm/ iif ( $urii /meem/(0-9AA-Za-z_*)$ ) sset $memccacheed_keey $1; memccacheed_paass 1192.1168.11.
27、2:1112111; exxpirees 700;这个配置会会将htttp:/sudoone.ccom/mmem/aabc指明明到memmcachhed的aabc这个个key去去取数据。Nginxx目前没有有写入meemcacched的的任何机制制,所以要要往memmcachhed里写写入数据得得用后台的的动态语言言完成,可可以利用4404定向向到后端去去写入数据据。Nginxx传统缓存存的缺点也也是它和ssquidd等缓存软软件的不同同之特色,所所以也可看看作其优点点。在生产产应用中它它常常用作作和squuid的搭搭档,sqquid对对于带?的的链接往往往无法阻挡挡,而ngginx能能将其访
28、问问拦住,例例如:htttp:/?和htttp:/在squuid上会会被当做两两个链接,所所以会造成成两次穿透透;而ngginx只只会保存一一次,无论论链接变成成httpp:/ssudonne.coom/?11还是htttp:/?1233,均不能能透过ngginx缓缓存,从而而有效地保保护了后端端主机。nginxx会非常老老实地将链链接形式保保存到文件件系统中,这这样对于一一个链接,可可以很方便便地查阅它它在缓存机机器上的缓缓存状态和和内容,也也可以很方方便地和别别的文件管管理器如rrsyncc等配合使使用,它完完完全全就就是一个文文件系统结结构。应用程序方方面的缓存存OSCaccheOSCa
29、cche由OOpenSSymphhony设设计,它是是一种开创创性的JSSP定制标标记应用,提提供了在现现有JSPP页面之内内实现快速速内存缓冲冲的功能,OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API-OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存-缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重
30、启。支持集群-集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期-你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。OSCacche是当当前运用最最广的缓存存方案,JJBosss,Hibbernaate,SSprinng等都对对其有支持持。OSCacche的特特点:1) 缓存存任何对象象:你可以以不受限制制的缓存部部分jspp页面或HHTTP请请求,任何何javaa对象都可可以缓存。 2) 拥有有全面的AAPI:OOSCacche AAPI允许许你通过编编程的方式式来控制所所有的OSSCachhe特性。 3) 永久久缓存:缓缓存能被配配置写入
31、硬硬盘,因此此允许在应应用服务器器的多次生生命周期间间缓存创建建开销昂贵贵的数据。 4) 支持持集群:集集群缓存数数据能被单单个的进行行参数配置置,不需要要修改代码码。 5) 缓存存过期:你你可以有最最大限度的的控制缓存存对象的过过期,包括括可插入式式的刷新策策略(如果果默认性能能不能满足足需要时)。Memcaacheddmemcaachedd是高性能能的分布式式内存缓存存服务器。一般的使使用目的是是,通过缓缓存数据库库查询结果果,减少数数据库访问问次数,以以提高动态态Web应应用的速度度、 提高高可扩展性性。Memcaachedd是以Keey/Vaalue的的形式单个个对象缓存存。自主开发的
32、的内存数据缓缓存服务独立进程方方式的缓存存服务对于一些常常用的动态态数据通过过开发程序序服务缓存存在内存中中,提供给给其他子系系统调用,如如下面的数数据就可以以通过这样样方式进行行缓存。用户基本信信息及状态态的信息缓缓冲列表缓存,就就像论坛里里帖子的列列表记录条数的的缓存,比比如一个论论坛板块里里有多少个个帖子,这这样才方便便实现分页页。复杂一点的的grouup,suum,coount查查询,比如如积分的分分类排名集成在WEEB应用中中的内存缓缓存在web应应用中对于于热点的功功能,考虑虑使用完全全装载到内内存,保证证绝对的响响应速度,对对于需要频频繁访问的的热点数据据,采用集集中缓存(多个可
33、以以采用负载载均衡),减减轻数据库库的压力,比比如:很多多配置信息息,操作员员信息等等等。页面静态化化静态的HTTML页面面严格地由由标准的HHTML标标示语言构构成,并不不需要服务务器端即时时运算生成成。这意味味着,对一一个静态HHTML文文档发出访访问请求后后,服务器器端只是简简单地将该该文档传输输到客户端端。从服务务器运行的的那个时间间片来看,这这个传输过过程仅仅占占用了很小小的CPUU资源。页面静态化化就是采用用效率最高高、消耗最最小的纯静静态化的hhtml页页面来替换换动态页面面。我们尽尽可能使我我们的网站站上的页面面采用静态态页面来实实现,这个个最简单的的方法其实实也是最有有效的方
34、法法。同时采用第第三方开源源的CMSS系统来实实现网站内内容的管理理。对于大大量内容并并且频繁更更新的网站站,我们无无法全部手手动去挨个个实现页面面静态化,所以我们们需要引入入常见的信信息发布系系统(CMS),信息发发布系统(CMS)可以实现现最简单的的信息录入入自动生成成静态页面面,对于一个个大型网站站来说,拥拥有一套高高效、可管管理的CMMS是必不不可少的。同时,HTTML静态态化也是某某些缓存策策略使用的的手段,对对于系统中中频繁使用用数据库查查询但是内内容更新很很小的应用用,可以考考虑使用HHTML静静态化来实实现,比如如论坛中论论坛的公用用设置信息息,这些信信息目前的的主流论坛坛都可
35、以进进行后台管管理并且 HYPERLINK / o 存储 存存储再数据据库中,这这些信息其其实大量被被前台程序序调用,但但是更新频频率很小,可可以考虑将将这部分内内容进行后后台更新的的时候进行行静态化,这这样避免了了大量的数数据库访问问请求。在进行httml静态态化的时候候还可以使用用一种折中中的方法,就就是前端继继续使用动动态实现,在在一定的策策略下通过过后台模块块进行定时时把动态网网页生成静静态页面,并并定时判断断调用,这这个能实现现很多灵活活性的操作作。为了提高静静态HTMML的访问问效率,主主要可以对对以下几个个方面进行行优化:网网络带宽、磁盘I/O以及ccachee(高速缓缓冲存储器
36、器)。数据库配置置及优化数据库集群群对生产数数据库采用用RAC实实现数据库库的集群。数据库及表表的散列把生产数据据库和查询询数据库进进行分离,针针对系统业业务数据的的特点,把把大的表进进行拆分,对对于访问较较多的表采采用分区表表。使用读/写写数据库分分离,随着着系统变得得越来越庞庞大,特别别是当它们们拥有 很很差的SQQL时,一一台数据库库服务器通通常不足以以处理负载载。但是多多个数据库库意味着重重复,除非非你对数据据进行了分分离。更一一般地,这这意味着建建立主/从从副本系统统,其中 程序会对对主库编写写所有的UUpdatte、Innsertt和Dellete变变更语句,而而所有Seelect
37、t的数据都都读取自从从数据库(或或者多个从从数据库)。尽管概念上上很简单,但但是想要合合理、精确确地实 现现并不容易易,这可能能需要大量量的代码工工作。因此此,即便在在开始时使使用同一台台数据库服服务器,也也要尽早计计划在PHHP中使用用分离的DDB连接来来进行读写写操作。如如果正确 地完成该该项工作,那那么系统就就可以扩展展到2台、3台甚至至12台服服务器,并并具备高可可用性和稳稳定性。拥有良好的的DB配置置和备份很多公司都都没有良好好的备份机机制,也不不知道如 何恰当地地完成这项项工作。只只有impp是不够的的,还需要要进行热备备份,从而而得到超快快的速度和和超高的可可靠性。另外,在将将所
38、有备份份文件从服服务器上转转移出来之之前要进行行压缩和加加密。另外外还要确保保拥有设计计合理的、有用的关关于安全、性能和稳稳定性问题题的设定,包包括防止数数据败坏,其其中很多设设定都是非非常重要的的。文件存储文件共享HDFS(GGFS)HDFS是是Apacche HHadooop项目中中的一个分分布式文件件系统实现现,基于GGooglle于20003年110月发表表的Gooogle Filee Sysstem(GFS)论文。特性硬件要求低低高容错性易可扩展配置简单超大文件HDFS采采用masster/slavve架构。一个HDDFS集群群是由一个个Nameenodee和一定数数目的Daatan
39、oodes组组成。NFS与GGFS比较较首先从它们们的功能上上进行分析析。NFSS即网络文文件系统,是是由SUNN公司开发发的。它是是FreeeBSD支支持的文件件系统中的的一种,允允许一个系系统在网络络上与它人人共享目录录和文件。通过使用用NFS,用用户和程序序访问远端端系统上的的文件就像像访问本地地文件一样样。而GFS是是Googgle为了了满足本公公司迅速增增长的数据据处理要求求而开发的的文件系统统。GFSS是一个可可扩展的分分布式文件件系统,用用于大型的的、分布式式的、对大大量数据进进行访问的的应用。它它是针对GGooglle的计算算机集群进进行设计的的,专门是是为Gooogle页页面
40、搜索的的存储进行行了优化。所以从功能能上看,它它们两者是是完全不同同的概念。其次从结构构上比较,NNFS至少少包括两个个主要部分分:一台服服务器,以以及至少一一台客户机机。被共享享的目录和和文件存放放在服务器器上,客户户机远程地地访问保存存在服务器器上的数据据。GFS则由由一台Maasterr(通常有有几台备份份)和若干干台TruunkSeerverr构成。GGFS中文文件备份成成固定大小小的Truunk分别别存储在不不同的 TTrunkkServver上,每每个Truunk有多多份(比如如3)拷贝贝,也存储储在不同的的TrunnkSerrver上上。Masster负负责维护GGFS中的的 M
41、ettadatta,即文文件名及其其Trunnk信息。客户端先先从Masster上上得到文件件的Mettadatta,根据据要读取的的数据在文文件中的位位置与相应应的 TrrunkSServeer通信,获获取文件数数据。再从跨平台台性上,NNFS的基基本原则是是“容许不同同的客户端端及服务端端通过一组组RPCss分享相同同的文件系系统”,它是独独立于操作作系统的,容容许不同的的操作系统统共同地进进行文件的的共享。而GFS则则没有这一一特点,文文件只能被被集群系统统中的PCC所访问,而而且这些PPC的操作作系统一般般是Linnux。最后从规模模上比较,HDFS只应用在大批量的数据共享上。目前Go
42、ogle拥有超过200个的GFS集群,其中有些集群的PC数量超过5000台。集群的数据存储规模可以达到5个PB,并且集群中的数据读写吞吐量可达到每秒40G。而NFS一一般没有这这么巨大的的规模。文件的多服服务器自动动同步使用Liinux 2.6内内核的innotiffy监控LLinuxx文件系统统事件。利用开源源的lsyync监听听某一目录录,如果目目录内文件件发生增、删、改,利利用Rsyync协议议自动同步步到多台服服务器。图片服务器器分离特别是如如果程序与与图片都放放在同一个个 APAAHCE 的服务器器下,每一一个图片的的请求都有有可能导致致一个 HHTTPDD 进程的的调用。使用独立的
43、的图片服务务器不但可可以避免以以上这个情情况,更可可以对不同同的使用性性质的图片片设置不同同的过期时时间,以便便同一个用用户在不同同页面访问问相同图片片时不会再再次从服务务器(基于于是缓存服服务器)取取数据,不不但快速,而而且还省了了带宽。还还有就是,对对于缓存的的时间上,亦亦可以做独独立的调节节。网络问题解解决方案你不可能要要求所有的的使用人员员,都和你你的服务器器在一个运运营商的网网络内,而而不同网络络之间访问问速度会很很慢,我们可以以采用镜像像网站和引引入CDNN来解决这这一问题。智能DNSS解析我们可以在在不同的网网络运营商商部署weeb服务器器,通过llinuxx上的rssync工工
44、具自动同同步到不同同网络接入入商的weeb服务器器上,以作为为主站的镜镜像。然后通过配配置智能DDNS解析析来引导不不同网络的的访问用户户到对应的的网络运营营商的weeb服务器器。CDN如果有足够够的投资,也可以采用CDN(内容分发网),把静态内容(静态页面和图片)进行CDN缓存,以减轻服务器压力。CDN的全全称是Coontennt Deeliveery NNetwoork,即即内容分发发网络。它它采取了分分布式网络络缓存结构构(即国际际上流行的的web cachhe技术),其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所
45、需的内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。 (也就是一个服务器的内容,平均分部到多个服务器上,服务器智能识别,让用户获取离用户最近的服务器,提高速度。目前,国内内访问量较较高的大型型网站如新新浪、网易易等,均使使用CDNN网络加速速技术,虽虽然网站的的访问巨大大,但无论论在什么地地方访问都都会感觉速速度很快。而一般的的网站如果果服务器在在网通,电电信用户访访问很慢,如如果服务器器在电信,网网通用户访访问又很慢慢。WEB应用用开发架构设设计思路基于MVCC的三层
46、应应用开发架架构应用开发实实现MVCC三层架构构进行weeb应用开开发,采用用ibattis作为为持久层框框架,c33p0作为为数据库连连接池。iBATIIS 是一一个可以设设计和实现现更好的 Javaa 应用程程序持久化化层的框架架。iBAATIS 把对象和和存储过程程或者使用用 XMLL 描述符符的 SQQL 语句句进行了关关联。简单单是 iBBATISS 最大的的优势ibatiis-使用用ibattis的十十个理由1. 至少少能操作110种以上上的数据库库2. 可可配置的ccachiing(包包括从属)3. 支支持DattaSouurce、locaal trransaactioon ma
47、anageemen和和globbal ttranssactiion4. 简单的的XML配配置文档55. 支持持Map, Colllecttion, Lisst和简单单类型包装装(如Inntegeer, SStrinng)6. 支持JJavaBBeanss类(geet/seet 方法法)7. 支持复杂杂的对象映映射(如ppopullatinng liists, commplexx objject modeels)88. 对象象模型从不不完美(不不需要修改改)9. 数据模型型从不完美美(不需要要修改)110. 你你已经知道道SQL,为为什么还要要学习其他他东西MVC架构构示意Strutts架构客户
48、端发送送一个HTTTP请求求,通过SStrutts框架最最后获得一一个HTTTP响应,这这一过程非非常重要,它它是理解SStrutts框架的的重点。上上图描述了了Struuts框架架的结构,而而下图通过过一个活动动图更具体体描述接受受请求直至至返回响应应的整个过过程:面向服务的的应用架构构面向服务的的应用架构构是指构建建可分布式式的、去中中心化的服服务器平台台,以提供许多多不同的应应用,数据库被分分成很多个个小部分,围围绕每个部部分都会创创建一个服服务接口(API),并且该该接口是访访问数据库库的唯一途途径。最终终数据库演演变成一个个非常庞大大的共享资资源。这种架构是是松散耦合合的,并且且围绕
49、着服服务进行构构建。面向向服务的架架构提供给给他们隔离离特性,一一个服务可可能有很多多台数据库库服务器,他他们之间的的数据是相相通的,而而对外他们们的接口只只有一个,外外面是无法法知道这个个服务后面面的数据组组织是如何何搭建的。这样就有了了越来越多多的应用服服务器。这这些应用服服务器从数数据众多的的服务(每每个服务背背后都有数数据库或集集群数据库库)中聚合合信息,然然后生成我我们所看到到的A的的各个网站站页面。这样各种服服务如插件件一样组成成了一个开开放的平台台,这样团队的规模就会比比较小,比比较灵活。注Amazzon就是是采用了这这种架构来来构 建的的,它拥有有上千台服服务器。系统软件参参数
50、优化在一定的架架构基础上上,要提高高并发处理理能力则需需要调整服服务器的操操作系统内内核参数、web服服务器(ttomcaat的参数数、apaache的的参数、NNginxx的参数),以以使其性能能达到最优优化。操作系统优优化调整系统的的内核参数数,增大连连接数及TTCP/IIP的超时时设置。Linuxx系统中:在/etcc/syssctl.conff配置文件件中增加如如下内核参参数:net.iipv4.tcp_synccookiies = 1net.iipv4.tcp_tw_rreusee = 11net.iipv4.tcp_tw_rrecyccle = 1net.iipv4.tcp_fin
51、_timeeout = 5tomcaat服务器器优化增大并发连连接数,调调整内存参参数的设置置。1、JDKK内存优化化:当应用程序序需要的内内存超出堆堆的最大值值时虚拟机机就会提示示内存溢出出,并且导导致应用服服务崩溃。因此一般般建议堆的的最大值设设置为可用用内存的最最大值的880%。 Tomccat默认认可以使用用的内存为为128MMB,在较较大型的应应用项目中中,这点内内存是不够够的,需要要调大.Tomcaat默认可可以使用的的内存为1128MBB,Winndowss下,在文文件/biin/caataliina.bbat,UUnix下下,在文件件/binn/cattalinna.shh的前
52、面,增增加如下设设置: JJAVA_OPTSS=-XXms【初初始化内存存大小】 -Xmxx【可以使使用的最大大内存】 需要把把这个两个个参数值调调大。例如如: JAAVA_OOPTS=-Xmms2566m -XXmx5112m 表示初始始化内存为为256MMB,可以以使用的最最大内存为为512MMB。2、连接器器优化: 在tommcat配配置文件sserveer.xmml中的配配置中,和和连接数相相关的参数数有:maxThhreadds: TTomcaat使用线线程来处理理接收的每每个请求。这个值表表示Tommcat可可创建的最最大的线程程数。默认认值1500。accepptCouunt:
53、指定当所所有可以使使用的处理理请求的线线程数都被被使用时,可可以放到处处理队列中中的请求数数,超过这这个数的请请求将不予予处理。默默认值100。minSppareTThreaads: Tomccat初始始化时创建建的线程数数。默认值值25。maxSppareTThreaads: 一旦创建建的线程超超过这个值值,Tommcat就就会关闭不不再需要的的sockket线程程。默认值值75。enablleLoookupss: 是否否反查域名名,默认值值为truue。为了了提高处理理能力,应应设置为ffalseeconnnnectiionTiimeouut: 网网络连接超超时,默认认值600000,单单
54、位:毫秒秒。设置为为0表示永永不超时,这这样设置有有隐患的。通常可设设置为300000毫毫秒。maxKeeepAlliveRRequeests: 保持请请求数量,默默认值1000。 bbuffeerSizze: 输输入流缓冲冲大小,默默认值20048 prressiion: 压缩传输输,取值oon/offf/foorce,默默认值offf。 其其中和最大大连接数相相关的参数数为maxxThreeads和和acceeptCoount。如果要加加大并发连连接数,应应同时加大大这两个参参数。web sserveer允许的的最大连接接数还受制制于*作系系统的内核核参数设置置,通常
55、WWindoows是22000个个左右,LLinuxx是10000个左右右。apachhe服务器器优化加大并发数数量和关闭闭不需要的的模块。因因为apaache非非常消耗内内存,尽量量轻量化。Apachhe在配置置ConttentTType的的时候可以以尽量少支支持,尽可可能少的LLoadMModulle,保证证更高的系系统消耗和和执行效率率同时配置aapache和和tomccat的组组合使之能能作到动静静分离,aapachhe处理静静态页面,ttomcaat处理动动态页面。在处理静态态页面或者者图片、jjs等访问问方面,可可以考虑使使用 HYPERLINK ligghttppd代替AApac
56、hhe,它提提供了更轻轻量级和更更高效的处处理能力Nginxx服务器的的优化workeer_prrocessses:该参数的的值最好跟跟cpu核核数相等,能能够发挥最最大性能,如如果ngiinx所在在服务器为为2颗双核核cpu,则则建议设定定为4。Web服务务架构评测测主要对基于于tomccat和nnginxx+tommcat的的web服服务器的处处理性能进进行测试,以以作为不同同性能要求求下架构选选型的依据据测试环境网络环境内网带宽千M内网。内网pinng包延迟迟:15082秒129866条/秒106万从第82秒秒开始,ttomcaat占用内内存1.11g,但CCPU资源源被tommcat耗
57、耗尽,服务务器负载急急剧升高,ttop显示示已达1550,服务务器停止响响应客户端端请求,客客户端请求求速度急剧剧下降,错错包率1000%,测测试被迫中中断。22500200万25毫秒Test111.7G6%,且且仍在增加加,测试终终止。toomcatt抛出“javaa.lanng.OuutOfMMemorryErrror: GC ooverhhead limiit exxceedded “异常。Test22293秒4123条条/秒120万32500200万50毫秒Test111.7G 3422秒2863条条/秒120万服务端从第第400秒秒左右开始始,tommcat占占用内存到到达Xmxx指
58、定上限限1.7gg,Tesst1、TTest22请求速度度急剧下降降,开始出出现大量错错包,4222秒以后后的错包率率超过4.3%,且且仍在在增增加中,之之前的错包包率约为00.8%,测试终止。Test22413秒2922条条/秒120万42500200万200毫秒秒Test111.7G 2742秒1727条条/秒128万服务端从第第740秒秒左右开始始,tommcat占占用内存到到达Xmxx指定上限限1.7gg,Tesst1、TTest22请求速度度急剧下降降,开始出出现大量错错包,测试试终止,达达到1.77G前,错错包率只有有0.0008%,达达到1.77g后,截截止停止测测试时,错错包率
59、增长长到1.22%,且仍仍在在增加加中。 wweb服务务器负载小小于2。Test22744秒1608条条/秒119万52500200万500毫秒秒Test111.7G 11595秒秒742条/秒118万服务端从第第15955秒左右开开始,toomcatt占用内存存到达Xmmx指定上上限1.77g,Teest1、Testt2请求速速度急剧下下降,开始始出现大量量错包,达达到1.77G前,错错包率只有有0.088%,达到到1.7gg后,截止止停止测试试时,错包包率增长到到2.3%,测试终终止。Test221575秒秒737条/秒116万62500300万1000毫毫秒Test111.7G 1636
60、2秒秒471条/秒300万在测试进度度到80%左右时,ttomcaat1占用用内存达到到了Xmxx指定上限限1.7gg,但Teest1、Testt2请求速速度并未下下降,直到到600万万次请求全全部完成,两两个客户端端分别有99个丢包,丢丢包率只有有0.0003%,最最长的响应应时长为112.7228秒。Test226351秒秒472条/秒300万Nginxx+2个TTOMCAAT的WEEB服务器器NO客户端数线程数请求次数间隔时间测试服务器器Tomcaat占用内内存服务器负载载持续时间平均速度完成请求数数最大响应时时长平均响应时时长测试结果12250150万0毫秒Test111G 2347秒
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025ESMO Asia肺癌靶向免疫治疗进展
- 中学教师考核评价制度
- 养老院入住老人突发疾病应急处理制度
- 企业员工培训与素质发展路径制度
- 企业内部沟通与协调制度
- 2026河南濮阳市市直机关遴选公务员15人参考题库附答案
- 2026年及未来5年市场数据中国水晶蜡烛灯行业发展运行现状及发展趋势预测报告
- 2026湖北恩施州恩施市城市社区党组织书记实行事业岗位管理专项招聘2人备考题库附答案
- 2026福建南平市医疗类储备人才引进10人考试备考题库附答案
- 2026福建海峡人才网络资讯有限公司前端开发人员招聘1人考试备考题库附答案
- GB/T 16895.6-2014低压电气装置第5-52部分:电气设备的选择和安装布线系统
- GB/T 11018.1-2008丝包铜绕组线第1部分:丝包单线
- GA/T 765-2020人血红蛋白检测金标试剂条法
- 武汉市空调工程毕业设计说明书正文
- 麻风病防治知识课件整理
- 消防工程监理实施细则
- 安全安全应急救援预案(沟槽开挖)
- 权利的游戏双语剧本-第Ⅰ季
- 卫生部《臭氧消毒技术规范》
- 早期复极综合征的再认识
- 山西某2×150MW循环流化床空冷机组施工组织设计方案
评论
0/150
提交评论