网站架构的设计方案_第1页
网站架构的设计方案_第2页
网站架构的设计方案_第3页
网站架构的设计方案_第4页
网站架构的设计方案_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网站架构的设计方案网站架构的设计方案网站架构,一般认为是根据客户需求分析的结果,准确定位网站目标 群体,设定网站整体架构,规划、设计网站栏目及其内容,制定网站开 发流程及顺序,以最大限度地进行高效资源分配及管理的设计。其内 容有程序架构,呈现架构,和信息架构三种表现。而步骤主要分为硬 架构和软架构两步程序。网络架构是现代网络学习和发展的一个必须 的基础技术。在选择机房的时候,根据网站用户的地域分布,可以选择 网通或电信机房,但更多时候,可能双线机房才是合适的。越大的城 市,机房价格越贵,从成木的角度看可以在一些中小城市托管服务器, 比如说北京的公司可以考虑把服务器托管在天津,廊坊等地,不是特

2、别远,但是价格会便宜很多。现在的PHP框架有很多选择,比如:C akePH P , Symfony, Ze n d Fram ework等等,至于应该使用哪一个并没有唯一的答案,要根 据Team里团队成员对各个框架的了解程度而定。很多时候,即使没 有使用框架,一样能 写出好的程序来,比如Fl ickr据说就是用 Pea r +Smar t y这样的类库写出来的,所以,是否用框架,用什么框 架,一般不是最重要的,重要的是我们的编程思想里要有框架的意 识。网站规模到了一定的程度之后,代码里各种逻辑纠缠在一起,会 给维护和扩展带来巨大的障碍,这时我们的解决方式其实很简单,那 就是重构,将逻辑进行分层

3、。通常,自上而下可以分为表现层,应用层, 领域层,持久层。所谓表现层,并不仅仅就指模板,它的范围要更广一些,所有和 表现相关的逻辑都应该被纳入表现层的范畴。比如说某处的字体要显 示为红色,某处的开头要空两格,这些都属于表现层。很多时候,我们 容易犯的错误就是把木属于表现层的逻辑放到了其他层面去完成,这 里说一个很常见的例子:我们在列表页显示文章标题的时候,都会设 定一个最大字数,一旦标题长度超过了这个限制,就截断,并在后面显 示 ”,这就是最典型的表现层逻辑,但是实际情况,有很多程序员 都是在非表现层代码里完成数据的获取和截断,然后赋值给表现层模 板,这样的代码最直接的缺点就是同样一段数据,在

4、这个页面我可能 想显示前10个字,再另一个页面我可能想显示前1 5个字,而一旦我 们在程序里固化了这个字数,也就丧失了可移植性。正确的做法是应 该做一个视图助手之类的程序来专门处理此类逻辑,比如说:Smarty 里的t runcate就属于这样的视图助手(不过它那个实现不适合中 文)。所谓应用层,它的主要作用是定义用户可以做什么,并把操作结 果反馈给表现层。至于如何做,通常不是它的职责范围(而是领域层 的职责范围),它会通过委派把如何做的工作交给领域层去处理。在 使用MVC架构的网站中,我们可以看到类似下而这样的URL: dom a i n / a r t i cles / v iew/1 2

5、 3,其内部编码实现,一般就是一个A rt i c les控制器类,里面有一个view方法,这就是一个典型的应用 层操作,因为它定义了用户可以做一个查看的动作。在MVC架构中, 有一个准则是这么说的:R i ch Model I s Goode言外之意,就是C ontroller要保持“瘦” 一些比较好,进而说明应用层要尽量简单, 不要包括涉及领域内容的逻辑。所谓领域层,最直接的解释就是包含领域逻辑的层。它是一个软 件的灵魂所在。先来看看什么叫领域逻辑,简单的说,具有明确的领 域概念的逻辑就是领域逻辑,比如我们在ATM机上取钱,过程大致是 这样的:插入银联卡,输入密码,输入取款金额,确定,拿钱

6、,然后A TM吐出一个交易凭条。在这个过程中,银联卡 在ATM机器里完成钱 从帐户上划拨的过程就是一个领域逻辑,因为取钱在银行中是一个明 确的领域概念,而ATM机吐出一个交易凭条则不是领域逻辑,而仅是 一个应用逻辑,因为吐出交易凭条并不是银行中一个明确的领域概 念,只是一种技术手段,对应的,我们取钱后不吐交易凭条,而发送一 条提醒短信也是可能的,但并不是一定如此,如果在实际情况中,我 们要求取款后必须吐出交易凭条,也就是说吐出交易凭条已经和取款 紧密结合,那么你也可以把吐出交易凭条看作是领域逻辑的一部分, 一切都以问题的具体情况而定。在Eric那本经典的领域驱动设计中,把领域层分为了五种基本

7、元素:实体,值对象,服务,工厂,仓储。具体可以参阅书中的介绍。 领域层最常犯的错误就是把本应属于领域层的逻辑泄露到了其他层 次,比如说在一个CM S系统,对热门文章的定义是这样的:每天被浏 览的次数多于1 0 0 0次,被评论的次数多于1 0 0次,这样的文章就 是热门文章。对于一个CMS来说,热门文章这个词无疑是一个重要的 领域概念,那么我们如何实现这个 逻辑的设计的?你可能会给出类 似下面的代码:“SELECT . FROM . WHERE 浏览 10 00 AND评论 100”,没错,这是最简单的实现方式,但是这里需要 注意的是“每天被浏览的次数多于10 0 0次,被评论的次数多于1 0

8、 0 次”这个重要的领域逻辑被隐藏到了 SQ L语句中,SQL语句显然 不属于领域层的范畴,也就是说,我们的领域逻辑泄露了。网站的性能瓶颈分析网站的性能影响因素很多,下而主要从如下4个方面进行分析说 明:1)网络负载a)公网负载b)内网负载2)WEB应用服务器性能a)CPUb)存储,1/0访问c)内存d)并发TCP/IP连接数3)数据库服务器性能a)数据库参数配置b)服务器性能(CPU、内存、存储)C)数据结构的合理性4)不同WEB应用的处理方式而对不同的性能瓶颈a)对于静态的网站:静态的IITM L页面严格地由标准的II T ML标示语言构 成,并不需要服务器端即时运算生成。这意味着,对一个

9、静态 IITML文档发出访问请求后,服务器端只是简单地将该文档传 输到客户端。从服务器运行的那个时间片来看,这个传输过程 仅仅占用了很小的CP U资源。对于静态HTM L的访问瓶颈为: 网络带宽、磁盘I/O以及cache (高速缓冲存储器)。b)对于动态页面因为服务器解析动态页面必须在其传输到客户端前就通过 服务器来进行解释,这样就会给应用服务器添加额外的性能消 耗,如果进一步要访问数据库,则会增加数据库服务器的性能 消耗,则动态页面还有额外的瓶颈:应用服务器的性能,数据 库服务器的性能。系统架构设计总体思路为提高网站的高并发性能,提高开发效率及运营效率,主要按如下 几个思路进行规划设计:负载

10、均衡1)四层交换负载均衡:采用负载均衡器来实现硬件级的四层交换负载均衡,或采 用LVS来实现软件的四层交换负载均衡。2)通过第三方软件来实现负载均衡,同时实现页面请求的缓 存。通过Nginx实现反向代理服务器集群,同时搭建s q u id 集群以作为静态页面和图片的缓存。3)通过web服务器的配置来实现负载均衡即通过apache或是Ng i nx将客户请求均衡的分给tom c a t 1, t o mcat2.去处理。WEB应用开发架构思路1)应用开发实现MVC架构三层架构进行web应用开发2)页而尽可能静态化以减少动态数据访问,如果是资讯类的网 站可以考虑采用第三方开源的CMS系统来生成静态

11、的内容 页而。3)采用Osc a ch e实现页面缓存,采用Meme a ch e d实现数据缓 存4)采用独立的图片服务器集群来实现图片资源的存储及WEB请 求数据存储的设计思路1)数据库拆分,把生产数据库和查询数据库分离,对生产数据 库采用R AC实现数据库的集群。2)采用高效的网络文件共享策略,采用图片服务器来实现页面 的图片存储。不同网络用户访问考虑1)通过引入CDN来解决不同网络服务商的接入速度问题,一 般只能解决静态页面的访问问题。2)在不同运营商机房部署服务器,通过镜像技术来实现不同 网络服务商的接入速度问题。总体架构11 / 32硬件四层交换负載均衡负载均衡器WEB服务(Apa

12、chHtoman 负载均衡)ApacheTomatWEB服务器架构Tom al应用级缓存数据持久层(ibatis)数据缓存页面缓存(OSCachc) (Mcmcachcd)网站的开发架构也务层数据丿中心WEB服务器基于前毗的MVC框架WAPPUSH消息中心Control数据存储 )ibatisL_持久层Model页面缓存(Mcmcachcd)WEB容器r FApache foinatHTML 静态化模块hA统计支撑模块业务支挣模块网络拓扑结构(RAC)(RAC)査询数据库备注:采用双防火墙双交换机做网络冗余,保障平台服务采用双防火墙通知接通2线路互联网接入,设备之间采 用VRRP协议,在任何一

13、个防火墙、互联网发生故障后均可自 动将流量切换到另一端,保证网站的正运行,设备或网络恢 复后,自动恢复。采用双千兆交换机分别接在2台防火墙上,当某台设备 或者网络链路发生故障后,好设备自动接管已坏设备的工 作,不影响网站的整体运行,根据业务及真实服务器的数量, 交换机可以随时增加。采用硬件设备负载均衡器,实现网络流量的负载均衡使用硬件设备负载均衡器,将网络流量均衡的分担到WEB 服务器集群各节点服务器,保障平台服务器资源均衡的使 用。采用代理服务器,实现软件级的网络负载均衡。数据库服务器分离成生产数据库集群和查询数据库集群, 实现生产读写及后台查询统计进行分离,同时生产数据库采 用rac技术进

14、行架构涉及技术的详解负载均衡基于DNS的负载均衡一-一个域名绑定多个I PDNS负载均衡技术是最早的负载均衡解决方案,它是通 过DNS服务中的随机名字解析来实现的,在DNS服务器中, 可以为多个不同的地址配置同一个名字,而最终查询这个名 字的客户机将在解析这个名字时得到其中的一个地址。因此, 对于同一个名字,不同的客户机会得到不同的地址,它们也 就访问不同地址上的We b 服务器,从而达到负载均衡的 目的。这种技术的优点是,实现简单、实施容易、成木低、适用 于大多数TCP/IP应用;但是,其缺点也非常明显,首先这 种方案不是真正意义上的负载均衡,DXS服务器将Ilttp请 求平均地分配到后台的

15、Web服务器上,而不考虑每个Web服 务器当前的负载情况;如果后台的Web服务器的配置和处理 能力不同,最慢的Web服务器将成为系统的瓶颈,处理能力 强的服务器不能充分发挥作用;其次未考虑容错,如果后台 的某台Web服务器出现故障,DS服务器仍然会把DNS请求 分配到这台故障服务器上,导致不能响应客户端。最后一点 是致命的,有可能造成相当一部分客户不能享受Web服务, 并且由于DNS缓存的原因,所造成的后果要持续相当长一段 时间(一般DS的刷新周期约为24小时)。所以在国外最新 的建设中心Web站点方案中,己经很少采用这种方案了。网站架构的设计方案通过硬件四层交换实现负载均衡在硬件四层交换产品

16、领域,有一些知名的产品可以选择, 比如A It eon. F5等,这些产品很昂贵,但是物有所值,能够 提供非常优秀的性能和很灵活的管理能力。Yahoo中国当初 接近2000台服务器使用了三四台Alteon就搞定了通过软件四层交换实现负载均衡软件四层交换我们可以使用L i nux上常用的LVS来解 决,LVS就是Li nux Vi r tual S erve r ,他提供了基于心 跳线h e a r tbe a t的实时灾难应对解决方案,提高系统的鲁 棒性,同时可供了灵活的虚拟V I P配置和管理功能,可以 同时满足多种应用需求,这对于分布式的系统来说必不可 少。一个典型的使用负载均衡的策略就是

17、,在软件或者硬件 四层交换的基础上搭建Squid集群,这种思路在很多大型 网站包括搜索引擎上被采用,这样的架构低成本、高性能还 有很强的扩张性。通过反向代理服务器实现负载均衡反向代理服务器又称为web加速服务器,它位于 WEB服务器的前端,充当WEB服务器的内容缓存器,反向代 理服务器是针对WEB服务器设置的,后台WEB服务器 对互联网用户是透明的,用户只能看到反向代理服务器的地 址,不清楚后台WEB服务器是如何组织架构的。当互联网 用户请求WEB服务时,DNS 将请求的域名解析为反向代 理服务器的IP地址,这样URL请求将被发送到反向代 理服务器,由反向代理服务器负责处理用户的请求及应答、

18、及后台WEB服务器交互。利用架构涉及技术的详解负载均衡基于DN S的负载均衡一-一个域名绑定多个I PDXS负载均衡技术是最早的负载均衡解决方案,它是通过 D NS服务中的随机名字解析来实现的,在DNS服务器中, 可以为多个不同的地址配置同一个名字,而最终查询这个名 字的客户机将在解析这个名字时得到其中的一个地址。因此, 对于同一个名字,不同的客户机会得到不同的地址,它们也 就访问不同地址上的Web服务器,从而达到负载均衡的目 的。这种技术的优点是,实现简单、实施容易、成木低、适用 于大多数TCP/IP应用;但是,其缺点也非常明显,首先这种 方案不是真正意义上的负载均衡,DNS服务器将Iltt

19、p 请求平均地分配到后台的We b服务器上,而不考虑每个Web 服务器当前的负载情况;如果后台的Web服务器的配置和处 理能力不同,最慢的Web服务器将成为系统的瓶颈,处理能 力强的服务器不能充分发挥作用;其次未考虑容错,如果后 台的某台Web服务器岀现故障,DNS服务器仍然会把DS 请求分配到这台故障服务器上,导致不能响应客户端。最后 一点是致命的,有可能造成相当一部分客户不能享受Web 服务,并且由于DNS缓存的原因,所造成的后果要持续相当 长一段时间(一般DNS的刷新周期约为24小时)o所以在国 外最新的建设中心Web站点方案中,己经很少采用这种方案 To通过硬件四层交换实现负载均衡在硬

20、件四层交换产品领域,有一些知名的产品可以选择, 比如Al t e on. F 5等,这些产品很昂贵,但是物有所值, 能够提供非常优秀的性能和很灵活的管理能力。Y aho。中 国当初接近2 000台服务器使用了三四台Alteon就搞定了通过软件四层交换实现负载均衡软件四层交换我们可以使用L inux上常用的LVS来解 决,LV S就是L i n ux V i r t u al Server,他提供了基于 心跳线h e artb e a t的实时灾难应对解决方案,提高系统的 鲁棒性,同时可供了灵活的虚拟VIP配置和管理功能,可以 同时满足多种应用需求,这对于分布式的系统来说必不可 少。一个典型的使

21、用负载均衡的策略就是,在软件或者硬件 四层交换的基础上搭建squid集群,这种思路在很多大型网 站包括搜索引擎上被采用,这样的架构低成本、高性能还有 很强的扩张性。通过反向代理服务器实现负载均衡反向代理服务器又称为WEB加速服务器,它位于WEB 服务器的前端,充当WEB服务器的内容缓存器,反向代理服 务器是针对 WEB服务器设置的,后台WEB服务器对互 联网用户是透明的,用户只能看到反向代理服务器的地址, 不清楚后台WEB服务器是如何组织架构的。当互联网用 户请求WEB服务时,DNS将请求的域名解析为反向代理 服务器的IP地址,这样URL请求将被发送到反向代理 服务器,由反向代理服务器负责处理

22、用户的请求及应答、及 后台 WEB 服务器交互。利用32 / 32戯务峑n代理腿务JS集群(Nghx 光纤交换也网站加务誌車群图片眾务B#t应用厳务戏奥群械芳祸| .*芳衣魁盘阵列柜戲盘阵列柜反向代理服务器减轻了后台WEB服务器的负载,提高了访问速度,同时避免了因用户直接及WEB服务器通信带来的安全隐患。Web Server Cluster目前有许多反向代理软件,比较有名的有Nginx和Squid 。N g i nx是由I g or S ysoev为俄罗斯访问量第二的Rambl er.ru站点开发的,是一个高性能的HTTP和反向代理服务器, 也是一个IMAP/P0P3/SMTP代理服务器。Sq

23、uid是由美国政府大力资助的一项研究计划,其目的为解决网络 带宽不足的问题,支持II TTP, IITTPS, FTP等多种协议,是现在U nix系统上使用、最多功能也最完整的一套软体。SquidSquid是一个开源的软件,利用它的反向代理技术可以提高网站 系统的访问速度,下面将重点介绍Squ i d反向代理的实现原理和在 提高网站性能方而的应用。Squid反向代理服务器位于本地 WEB服务器和Internet客户端请求访问WEB服务时,DNS将访问的域名解 析为Squid反向代理服务器的IP地址。这样客户端的URL请求将被发送到反向代理服务器。如果SqU i d反向代理服务器中缓存了该请求的

24、资源,则将该请求的资源直 接返回给客户端,否则反向代理服务器将向后台的WEB服务器请 求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在木 地,供下一个请求者使用。Squid反向代理一般只缓存可缓冲的数据(比如htm 1 网页和图片等),而一些CGI脚木程序或者ASP、JSP之类的动 态程序默认不缓存。它根据从WEB 服务器返回的HTT P头标记 来缓冲静态页而,有四个最重要HTTP 头标记:Last -Mod辻ied:告诉反向代理页面什么时间被修改Expi res :告诉反向代理页而什么时间应该从缓冲区中删除Cache-Cont r o 1:告诉反向代理页面是否应该被缓冲Pragma

25、:用来包含实现特定的指令,最常用的是Pragma :n 0 cache注:DNS的轮询机制将某一个域名解析为 多个IP地址。Ng i nxN g i nx ( ue n gine x”)是俄罗斯人I g o r Sys 0 ev(塞索耶 夫)编写的一款高性能的HTTP和反向代理服务器。Nginx己经在俄罗斯最大的门户网站 Rambler Media ()上 运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Ng i nx作为 反向代理服务器。在国内,己经有新浪博客、新浪播客、搜狐通行证、网易新闻、 网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、 迅雷看看等多家网站、频道使

26、用Nginx服务器。N g inx特点如下:1)工作在OSI模型的第7层(应用层)2)咼并发连接官方测试能够支撐5万并发连接,在实际生产环境中跑到 2飞万并发连接数。3)内存消耗少在3万并发连接下,开启的10个Nginx进程才消耗15 0 M 内存(15M*10=150M)。4)配置文件非常简单风格跟程序一样通俗易懂。5)成木低廉Nginx为开源软件,可以免费使用。而购买F 5 BIG IP、N e t Sea 1 er等硬件负载均衡交换机则需要十多万至 几十万人民币。6)支持Rewrite重写规则能够根据域名、URL的不同,将HTTP请求分到不同的后 端服务器群组。7)内置的健康检查功能如果

27、 N i nx P rox y后端的某台Web服务器宕机了,不会影响前端访问。8)节省带宽支持 GZIP压缩,可以添加浏览器本地缓存的Header 头。9)稳定性咼用于反向代理,宕机的概率微乎其微。X g inx+sq u i d页面缓存来实现反向代理负载均衡通过N g in x反向代理和squi d缓存实现动静分离的架构图如下所示:Nginx反向代理负我均衡 动静分需糸统架构图RIP: 61 1.1.2Vinx:. conf BSi;(rtwiuX动分玄负鞍戈備):: 励査PHPi香求分到;strvtrAphdg务器群)(?5)NGSMX内Rip: i2 ibs. 1.2N(i.nx. cn

28、 KSi务踞群组负鞍均an: jI s.trvtri:I listtn 192 168.1.2:80 sirverex wv abe. eea: i用尸访问 htty:/rww tbe. co倚鮑存的VR1分 和Swd服务蓟的Sqm抹命中 i誓求Nqz负挠均Jfc懿Ap a ch e +tom c at集群实现负载均衡。NotUN-MTmoealInstance)使用a p ache和多个tomca t配置一个可以应用的we b网站,用 Apa c h e进行分流,把请求按照权重以及当时负荷分tomcat 1, t 0 m cat2.去处理,要达到以下要求:1) Apache 做为II ttp

29、 S erver ,通过mod_jk连接器连接多个 tomcat应用实例,并进行负载均衡。2)同时还要配置ses s io n复制,也就是说其中任何一个t omcat的添加的s e s sio n ,是要同步复制到其它t om c at, 集群内的t o mca t都有相同的sessio n ,并为系统(包扌舌Ap a c he 和 t o me a t)设定 S e ssion 超时时间。缓存系统架构方而的缓存S quid缓存。架构方面使用Squ i d进行缓存。注:SQUID使用了LM算法,LM就是页面Hea d er里时间(Date)和 L a st-Mod if ied 时间的差。Da

30、t e 一般是 S qu id从后而取页面的时间,La s tMo d i fied 一般 是页面生成时间。Xginx的缓存功能N g i nx从0.7. 48版本开始,支持了类似Squid的缓存功能; 缓存把CRL及相关组合当作Key,用md5编码哈希后保存;Ng i nx的Web缓存服务只能为指定URL或状态码设置过期时间,不 支持类似Sq u i d的PURGE指令,手动清除指定缓存页而;采用MMAP实现,设置的缓存区大小不能超过物理内存+SWEB的值 基于 mem c a c hed的缓存nginx对memcached有所支持,但是功能并不是特别之强,性能上还 是非常之优秀。loc a

31、 tio n /mem/ 亠if ( $ uri / mem/ ( 0-9A-Za-Z*)$)Aset $m e me a che d _key $1 ; 4memcach ed_ p ass1 9 2. 1 6 8. 1 .2:112 1 1;expir e s 70;这个配置会将指明到mem cache d的ab c这个k ey去取数据。Nginx g前没有写入mem each ed的任何机制,所以要往mem c a c he d里写入数据得用后台的动态语言完成,可以利用404定向 到后端去写入数据。目前有许多反向代理软件,比较有名的有Nginx和Sq uid oNgi n x是由Igor

32、 S y soev为俄罗斯访问量第二的Ram b ler. ru站点开发的,是一个高性能的HT TP和反向代理服务器,也 是一个IMA P/POP3/SMT P代理服务器。Squid是由美国政府大力资助的一项研究计划,其目的为解决网 络带宽不足的问题,支持HTTP, HTTPS, FTP 等多种协议,是现在 Unix系统上使用、最多功能也最完整的一套软体。SquidSquid是一个开源的软件,利用它的反向代理技术可以提高网站 系统的访问速度,下而将重点介绍 S q uid反向代理的实现原理 和在提高网站性能方而的应用。Squid反向代理服务器位于本地WEB服务器和Interne t之 间,组织

33、架构如下图:该请求的资源,则将该请求的资源直接返回给客户端,否则反向代 理服务器将向后台的WEB服务器请求资源,然后将请求的应答返回 给客户端,同时也将该应答缓存在本地,供下一个请求者使用。Squid反向代理一般只缓存可缓冲的数据(比如h t ml网页和 图片等),而一些CGI脚本程序或者ASP、JSP之类的动态程序 默认不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态 页而,有四个最重要HTTP头标记: LastModi f i e d:告诉反向代理页面什么时间被修改Expires:告诉反向代理页而什么时间应该从缓冲区中删除Cach e -Co n trol:告诉反向代理页而是否应

34、该被缓冲Pragma:用来包含实现特定的指令,最常用的是Pr a gm a:n 0-cache注:DNS的轮询机制将某一个域名解析为多个IP地址。Ngi n xNg i n x (“engine x”)是俄罗斯人 Igor S ysoev (塞索耶夫) 编写的一款高性能的HTTP和反向代理服务器。Ng i nx己经在俄罗斯最大的门户网站 Rambler Medi a () 上运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Ngi n x 作为反向代理服务器。在国内,己经有新浪博客、新浪播客、搜狐通行证、网易新闻、 网易博客、金山逍遥网、金山爱词霸、校内网、YUP00相册、豆瓣、 迅雷看看

35、等多家网站、频道使用 Nginx服务器。Ngi nx特点如下:1)工作在OS I模型的第7层(应用层)2)咼并发连接官方测试能够支撐5万并发连接,在实际生产环境中跑到 23万并发连接数。3)内存消耗少在3万并发连接下,开启的10个Nginx进程才消耗1 5 0M 内存(1 5M*10= 1 50M)o4)配置文件非常简单风格跟程序一样通俗易懂。5)成木低廉Nginx为开源软件,可以免费使用。而购买F5BIG-IP. N etS c a 1 er等硬件负载均衡交换机则需要十多万至几 十万人民币。6)支持Rewri t e重写规则能够根据域名、URL的不同,将HTTP请求分到不同的后端 服务器群组

36、。7)内置的健康检查功能如果Ngin x P r ox y后端的某台Web服务器宕机了, 不会影响前端访问。8)节省带宽支持GZIP压缩,可以添加浏览器本地缓存的II eader 头。9)稳定性咼用于反向代理,宕机的概率微乎其微。X g i nx+s q u id页面缓存来实现反向代理负载均衡Nginx反向代理负我均衡 动静分禽纟统架构图用P访何 http:/mnr tbc.ctcht_p 轮诲多合 I外RIP: 61. 1 1.2Ncinx. conf 配誉:;(rnnu分席戻载均衡):;3)Apac h e做为Htt p Ser v e r ,通过mod_jk连接器连接多个t omc a

37、t应用实例,并进行负载均衡。4)同时还要配置s e s Sion复制,也就是说其中任何一个tome at的添加的se s sio n,是要同步复制到其它tomcat,集群内 的tomca t都有相同的s e ssion,并为系统(包括Ap a che和 tomca t )设定Se s sion超时时间。缓存系统架构方而的缓存Sq u i d缓存架构方而使用Squid进行缓存。注:SQUID使用了LM算法,LM就是页面II e a der里时间(Date)和Last-Modif i ed时间的差。Date一般是Squid从后面取页而的时间,LastModified 般是页面生成时间。Nginx的

38、缓存功能Ng i nx从0. 7.4 8版本开始,支持了类似S qu i d的缓存功能;缓存把URL及相关组合当作Key,用md 5编码哈希后保存;Nginx的We b缓存服务只能为指定URL或状态码设置过期时间,不 支持类似Squi d的PURGE指令,手动清除指定缓存页面;采用MMAP实现,设置的缓存区大小不能超过物理内存+ SWEB的值 基于m e m c a ched的缓存ngi n x对memcach e d有所支持,但是功能并不是特别之强,性能上 还是非常之优秀。loc a t i 0 n /mem / ai f ( $ u ri/mem/(09AZa z _*) $)set $m

39、 e mcac h e d _k e y $ 1 ;4memcache d _pass1 9 2. 16 8 . 1. 2: 1 1 2 11; 4expire s 7 0 ;亠这个配置会将指明到mem cached的abc这个k ey去取数据。N g inx目前没有写入memca c he d的任何机制,所以要往mem c ached里写入数据得用后台的动态语言完成,可以利用404定向到后 端去写入数据。OSCacheOSCache由Open S ymph 0 ny设计,它是一种开创性的J S P定制标 记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能,OSC ache是个一个广泛采

40、用的高性能的J2EE缓存框架,OS C a c h e能用 于任何J a v a应用程序的普通的缓存解决方案oOSCac h e有以下特 点:缓存任何对象,你可以不受限制的缓存部分j sp页面或HTTP请 求,任何ja va对象都可以缓存。拥有全面的API0 S Cache AP I给你全而的程序来控制所有的OSC a c he特性。永久缓存一-缓存 能随意的写入硬盘,因此允许昂贵的创建(ex p e n s i v e-to-crea t e )数据来保持缓存,甚至能让应用重启。支持集群一集群缓存数据 能被单个的进行参数配置,不需要修改代码。缓存记录的过期-一你可 以有最大限度的控制缓存对象

41、的过期,包括可插入式的刷新策略(如 果默认性能不需要时)。0 SCach e是当前运用最广的缓存方案,J Boss, H i be r nate, Spring等都对其有支持。0 S Cache的特点:1)缓存任何对象:你可以不受限制的缓存部分jsp页面或HTTP 请求,任何java对象都可以缓存。2)拥有全而的AP I : 0 SCach e A P I允许你通过编程的方式 来控制所有的0 SC a c h e特性。3)永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器 的多次生命周期间缓存创建开销昂贵的数据。4)支持集群:集群缓存数据能被单个的进行参数配置,不需要 修改代码。5)缓存过期:你可以有最大限度的控制缓存对象的过期,包括 可插入式的刷新策略(如果默认性能不能满足需要时)oMemcachedmem c ached是高性能的分布式内存缓存服务器。一般的使用目的 是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态We b应用的速度、 提高可扩展性。Memcac h e d是以Key/ Value的形式单个对象缓存。自主开发的内存数据缓存服务独立进程方式的缓存服务对于一些常用的动态数据通过开发程序服务缓存在内存中,提 供给其他子系统调用,如下而的数据就可以通过这样方式进行缓 存。1)用户基本信息及状态的信息缓冲2)列表缓存,就像论

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论