门户网站架构设计专项方案.doc
《门户网站架构设计专项方案.doc》由会员分享,可在线阅读,更多相关《门户网站架构设计专项方案.doc(42页珍藏版)》请在咨信网上搜索。
前台门户网站架构 设计方案 北京宽连十方数字技术有限公司 -7 目 录 1 设计思路 3 2 系统构造 3 3 网络规划及性能计算 3 3.1 网络架构 3 3.2 网络架构阐明 4 3.2.1 采用双防火墙双互换机做网络冗余,保障平台服务 4 3.2.2 采用硬件设备负载均衡器,实现网络流量负载均衡 4 3.3 系统测算 4 3.3.1 系统解决能力规定 4 3.3.2 业务解决能力规定 4 3.3.3 系统话务模型 4 3.4 配备核算 5 3.4.1 数据库服务器性能核算 5 3.4.2 WEB服务器集群性能核算 5 3.4.3 WEB服务器集群内存性能核算 5 3.4.4 网络带宽 5 4 性能模仿测试及性能推算 6 4.1 测试环境 6 4.2 测试成果 8 4.2.1 1个客户端模仿不同线和并发祈求成果 8 4.2.2 10个客户端祈求 8 4.3 成果分析 9 4.4 依照测试成果推算 9 4.5 设备清单 11 4.5.1 硬件设备配备清单 11 4.5.2 设备技术规格 12 4.6 平台扩容建议 12 1 网站性能瓶颈分析 网站性能影响因素诸多,下面重要从如下4个方面进行分析阐明: 1) 网络负载 a) 公网负载 b) 内网负载 2) WEB应用服务器性能 a) CPU b) 存储,I/O访问 c) 内存 d) 并发TCP/IP连接数 3) 数据库服务器性能 a) 数据库参数配备 b) 服务器性能(CPU、内存、存储) c) 数据构造合理性 4) 不同WEB应用解决方式而对不同性能瓶颈 a) 对于静态网站: 静态HTML页面严格地由原则HTML标示语言构成,并不需要服务器端即时运算生成。这意味着,对一种静态HTML文档发出访问祈求后,服务器端只是简朴地将该文档传播到客户端。从服务器运营那个时间片来看,这个传播过程仅仅占用了很小CPU资源。对于静态HTML访问瓶颈为:网络带宽、磁盘I/O以及cache(高速缓冲存储器)。 b) 对于动态页面 由于服务器解析动态页面必要在其传播到客户端前就通过服务器来进行解释,这样就会给应用服务器添加额外性能消耗,如果进一步要访问数据库,则会增长数据库服务器性能消耗,则动态页面尚有额外瓶颈:应用服务器性能,数据库服务器性能。 2 系统架构设计 2.1 总体思路 为提高网站高并发性能,提高开发效率及运营效率,重要按如下几种思路进行规划设计: 2.1.1 负载均衡 1) 四层互换负载均衡: 采用负载均衡器来实现硬件级四层互换负载均衡,或采用LVS来实现软件四层互换负载均衡。 2) 通过第三方软件来实现负载均衡,同步实现页面祈求缓存。 通过Nginx实现反向代理服务器集群,同步搭建squid集群以作为静态页面和图片缓存。 3) 通过web服务器配备来实现负载均衡 即通过apache或是Nginx 将客户祈求均衡分给tomcat1,tomcat2....去解决。 2.1.2 WEB应用开发架构思路 1) 应用开发实现MVC架构三层架构进行web应用开发 2) 页面尽量静态化以减少动态数据访问,如果是资讯类网站可以考虑采用第三方开源CMS系统来生成静态内容页面。 3) 采用Oscache实现页面缓存,采用Memcached实现数据缓存 4) 采用独立图片服务器集群来实现图片资源存储及WEB祈求 2.1.3 数据存储设计思路 1) 数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库集群。 2) 采用高效网络文献共享方略,采用图片服务器来实现页面图片存储。 2.1.4 不同网络顾客访问考虑 1) 通过引入CDN来解决不同网络服务商接入速度问题,普通只能解决静态页面访问问题。 2) 在不同运营商机房布置服务器,通过镜像技术来实现不同网络服务商接入速度问题。 2.2 总体架构 2.2.1 网站系统分层架构 2.2.2 网站物理架构 2.2.3 网站开发架构 2.2.4 网络拓扑构造 备注: 1) 采用双防火墙双互换机做网络冗余,保障平台服务 采用双防火墙告知接通2线路互联网接入,设备之间采用VRRP合同,在任何一种防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站正运营,设备或网络恢复后,自动恢复。 采用双千兆互换机分别接在2台防火墙上,当某台设备或者网络链路发生故障后,好设备自动接管已坏设备工作,不影响网站整体运营,依照业务及真实服务器数量,互换机可以随时增长。 2) 采用硬件设备负载均衡器,实现网络流量负载均衡 使用硬件设备负载均衡器,将网络流量均衡分担到WEB服务器集群各节点服务器,保障平台服务器资源均衡使用。 3) 采用代理服务器,实现软件级网络负载均衡。 4) 数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写与后台查询记录进行分离,同步生产数据库采用rac技术进行 2.3 架构涉及技术详解 2.3.1 负载均衡 1. 基于DNS负载均衡--一种域名绑定各种IP DNS负载均衡技术是最早负载均衡解决方案,它是通过DNS服务中随机名字解析来实现,在DNS服务器中,可觉得各种不同地址配备同一种名字,而最后查询这个名字客户机将在解析这个名字时得到其中一种地址。因而,对于同一种名字,不同客户机会得到不同地址,它们也就访问不同地址上Web 服务器,从而达到负载均衡目。 这种技术长处是,实现简朴、实行容易、成本低、合用于大多数TCP/IP应用;但是,其缺陷也非常明显,一方面这种方案不是真正意义上负载均衡,DNS 服务器将Http祈求平均地分派到后台Web服务器上,而不考虑每个Web服务器当前负载状况;如果后台Web服务器配备和解决能力不同,最慢 Web服务器将成为系统瓶颈,解决能力强服务器不能充分发挥作用;另一方面未考虑容错,如果后台某台Web服务器浮现故障,DNS服务器依然会把DNS 祈求分派到这台故障服务器上,导致不能响应客户端。最后一点是致命,有也许导致相称一某些客户不能享有Web服务,并且由于DNS缓存因素,所导致后果要持续相称长一段时间(普通DNS刷新周期约为24小时)。因此在国外最新建设中心Web站点方案中,已经很少采用这种方案了。 2. 通过硬件四层互换实现负载均衡 在硬件四层互换产品领域,有某些知名产品可以选取,例如Alteon、F5等,这些产品很昂贵,但是物有所值,可以提供非常先进性能和很灵活管理能力。Yahoo中华人民共和国当时接近台服务器使用了三四台Alteon就搞定了 3. 通过软件四层互换实现负载均衡 软件四层互换咱们可以使用Linux上惯用LVS来解决,LVS就是Linux Virtual Server,她提供了基于心跳线heartbeat实时劫难应对解决方案,提高系统鲁棒性,同步可供了灵活虚拟VIP配备和管理功能,可以同步满足各种应用需求,这对于分布式系统来说必不可少。 一种典型使用负载均衡方略就是,在软件或者硬件四层互换基本上搭建squid集群,这种思路在诸多大型网站涉及搜索引擎上被采用,这样架构低成本、高性能尚有很强扩张性。 4. 通过反向代理服务器实现负载均衡 反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器前端,充当WEB服务器内容缓存器,反向代理服务器是针对 WEB 服务器设立,后台 WEB 服务器对互联网顾客是透明,顾客只能看到反向代理服务器地址,不清晰后台 WEB 服务器是如何组织架构。当互联网顾客祈求 WEB 服务时,DNS 将祈求域名解析为反向代理服务器 IP 地址,这样 URL 祈求将被发送到反向代理服务器,由反向代理服务器负责解决顾客祈求与应答、与后台 WEB 服务器交互。运用反向代理服务器减轻了后台 WEB 服务器负载,提高了访问速度,同步避免了因顾客直接与 WEB 服务器通信带来安全隐患。 当前有许多反向代理软件,比较有名有 Nginx 和 Squid 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二 Rambler.ru 站点开发,是一种高性能 HTTP 和反向代理服务器,也是一种 IMAP/POP3/SMTP 代理服务器。 Squid是由美国政府大力资助一项研究筹划,其目为解决网络带宽局限性问题,支持HTTP,HTTPS,FTP 等各种合同,是当前 Unix 系统上使用、最多功能也最完整一套软体。 1) Squid Squid 是一种开源软件,运用它反向代理技术可以提高网站系统访问速度,下面将重点简介 Squid 反向代理实现原理和在提高网站性能方面应用。 Squid反向代理服务器位于本地 WEB 服务器和 Internet 之间 ,组织架构如下图: 客户端祈求访问 WEB 服务时,DNS 将访问域名解析为 Squid 反向代理服务器 IP 地址,这样客户端 URL 祈求将被发送到反向代理服务器。如果 Squid 反向代理服务器中缓存了该祈求资源,则将该祈求资源直接返回给客户端,否则反向代理服务器将向后台 WEB 服务器祈求资源,然后将祈求应答返回给客户端,同步也将该应答缓存在本地,供下一种祈求者使用。 Squid 反向代理普通只缓存可缓冲数据(例如 html 网页和图片等),而某些 CGI 脚本程序或者 ASP、JSP 之类动态程序默认不缓存。它依照从 WEB 服务器返回 HTTP 头标记来缓冲静态页面,有四个最重要 HTTP 头标记: · Last-Modified:告诉反向代理页面什么时间被修改 · Expires:告诉反向代理页面什么时间应当从缓冲区中删除 · Cache-Control:告诉反向代理页面与否应当被缓冲 · Pragma:用来包括实现特定指令,最惯用是 Pragma:no-cache 注:DNS 轮询机制将某一种域名解析为 各种IP地址。 2) Nginx Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写一款高性能 HTTP 和反向代理服务器。 Nginx 已经在俄罗斯最大门户网站── Rambler Media(.ru)上运营了4年时间,同步俄罗斯超过20%虚拟主机平台采用Nginx作为反向代理服务器。 在国内,已有新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用 Nginx 服务器。 Nginx 特点如下: 1) 工作在OSI模型第7层(应用层) 2) 高并发连接 官方测试可以支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。 3) 内存消耗少 在3万并发连接下,启动10个Nginx 进程才消耗150M内存(15M*10=150M)。 4) 配备文献非常简朴 风格跟程序同样通俗易懂。 5) 成本低廉 Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡互换机则需要十多万至几十万人民币。 6) 支持Rewrite重写规则 可以依照域名、URL不同,将 HTTP 祈求分到不同后端服务器群组。 7) 内置健康检查功能 如果 Nginx Proxy 后端某台 Web 服务器宕机了,不会影响前端访问。 8) 节约带宽 支持 GZIP 压缩,可以添加浏览器本地缓存 Header 头。 9) 稳定性高 用于反向代理,宕机概率微乎其微。 3) Nginx+squid页面缓存来实现反向代理负载均衡 通过Nginx反向代理和squid缓存实现动静分离架构图如下所示: 5. Apache +tomcat集群实现负载均衡。 使用 apache和各种tomcat 配备一种可以应用web网站,用Apache进行分流,把祈求按照权重以及当时负荷分tomcat1,tomcat2...去解决,要达到如下规定: 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时间差。Date普通是Squid从背面取页面时间,Last-Modified 普通是页面生成时间。 2) Nginx缓存功能 Nginx从0.7.48版本开始,支持了类似Squid缓存功能; 缓存把URL及有关组合当作Key,用md5编码哈希后保存; NginxWeb缓存服务只能为指定URL或状态码设立过期时间,不支持类似SquidPURGE指令,手动清除指定缓存页面; 采用MMAP实现,设立缓存区大小不能超过物理内存+SWEB值 3) 基于memcached缓存 nginx对memcached有所支持,但是功能并不是特别之强,性能上还是非常之先进。 location /mem/ { if ( $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会非常诚实地将链接形式保存到文献系统中,这样对于一种链接,可以很以便地查阅它在缓存机器上缓存状态和内容,也可以很以便地和别文献管理器如rsync等配合使用,它完完全全就是一种文献系统构造。 2. 应用程序方面缓存 1) OSCache OSCache由OpenSymphony设计,它是一种开创性JSP定制标记应用,提供了在既有JSP页面之内实现迅速内存缓冲功能,OSCache是个一种广泛采用高性能J2EE缓存框架,OSCache能用于任何Java应用程序普通缓存解决方案。OSCache有如下特点:缓存任何对象,你可以不受限制缓存某些jsp页面或HTTP祈求,任何java对象都可以缓存。拥有全面API--OSCache API给你全面程序来控制所有OSCache特性。永久缓存--缓存能随意写入硬盘,因而容许昂贵创立(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群--集群缓存数据能被单个进行参数配备,不需要修改代码。缓存记录过期--你可以有最大限度控制缓存对象过期,涉及可插入式刷新方略(如果默认性能不需要时)。 OSCache是当前运用最广缓存方案,JBoss,Hibernate,Spring等都对其有支持。 OSCache特点: 1) 缓存任何对象:你可以不受限制缓存某些jsp页面或HTTP祈求,任何java对象都可以缓存。 2) 拥有全面API:OSCache API容许你通过编程方式来控制所有OSCache特性。 3) 永久缓存:缓存能被配备写入硬盘,因而容许在应用服务器多次生命周期间缓存创立开销昂贵数据。 4) 支持集群:集群缓存数据能被单个进行参数配备,不需要修改代码。 5) 缓存过期:你可以有最大限度控制缓存对象过期,涉及可插入式刷新方略(如果默认性能不能满足需要时)。 2) Memcached memcached是高性能分布式内存缓存服务器。普通使用目是,通过缓存数据库查询成果,减少数据库访问次数,以提高动态Web应用速度、提高可扩展性。 Memcached是以Key/Value形式单个对象缓存。 3) 自主开发内存数据缓存服务 a) 独立进程方式缓存服务 对于某些惯用动态数据通过开发程序服务缓存在内存中,提供应其她子系统调用,如下面数据就可以通过这样方式进行缓存。 1) 顾客基本信息及状态信息缓冲 2) 列表缓存,就像论坛里帖子列表 3) 记录条数缓存,例如一种论坛板块里有多少个帖子,这样才以便实现分页。 4) 复杂一点group,sum,count查询,例如积分分类排名 b) 集成在WEB应用中内存缓存 在web应用中对于热点功能,考虑使用完全装载到内存,保证绝对响应速度,对于需要频繁访问热点数据,采用集中缓存(各种可以采用负载均衡),减轻数据库压力,例如:诸多配备信息,操作员信息等等。 2.3.3 页面静态化 静态HTML页面严格地由原则HTML标示语言构成,并不需要服务器端即时运算生成。这意味着,对一种静态HTML文档发出访问祈求后,服务器端只是简朴地将该文档传播到客户端。从服务器运营那个时间片来看,这个传播过程仅仅占用了很小CPU资源。 页面静态化就是采用效率最高、消耗最小纯静态化html页面来替代动态页面。咱们尽量使咱们网站上页面采用静态页面来实现,这个最简朴办法其实也是最有效办法。 同步采用第三方开源CMS系统来实现网站内容管理。对于大量内容并且频繁更新网站,咱们无法所有手动去挨个实现页面静态化,因此咱们需要引入常用信息发布系统(CMS),信息发布系统(CMS)可以实现最简朴信息录入自动生成静态页面,对于一种大型网站来说,拥有一套高效、可管理CMS是必不可少。 同步,HTML静态化也是某些缓存方略使用手段,对于系统中频繁使用数据库查询但是内容更新很小应用,可以考虑使用HTML静态化来实现,例如论坛中论坛公用设立信息,这些信息当前主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这某些内容进行后台更新时候进行静态化,这样避免了大量数据库访问祈求。 在进行html静态化时候还可以使用一种折中办法,就是前端继续使用动态实现,在一定方略下通过后台模块进行定期把动态网页生成静态页面,并定期判断调用,这个能实现诸多灵活性操作。 为了提高静态HTML访问效率,重要可以对如下几种方面进行优化:网络带宽、磁盘I/O以及cache(高速缓冲存储器)。 2.3.4 数据库配备及优化 1. 数据库集群 对生产数据库采用RAC实现数据库集群。 2. 数据库及表散列 把生产数据库和查询数据库进行分离,针对系统业务数据特点,把大表进行拆分,对于访问较多表采用分区表。 使用读/写数据库分离,随着系统变得越来越庞大,特别是当它们拥有 很差SQL时,一台数据库服务器普通局限性以解决负载。但是各种数据库意味着重复,除非你对数据进行了分离。更普通地,这意味着建立主/从副本系统,其中 程序会对主库编写所有Update、Insert和Delete变更语句,而所有Select数据都读取自从数据库(或者各种从数据库)。 尽管概念上很简朴,但是想要合理、精准地实 现并不容易,这也许需要大量代码工作。因而,即便在开始时使用同一台数据库服务器,也要尽早筹划在PHP中使用分离DB连接来进行读写操作。如果对的 地完毕该项工作,那么系统就可以扩展到2台、3台甚至12台服务器,并具备高可用性和稳定性。 3. 拥有良好DB配备和备份 诸多公司都没有良好备份机制,也不懂得如 何恰本地完毕这项工作。只有imp是不够,还需要进行热备份,从而得到超迅速度和超高可靠性。 此外,在将所有备份文献从服务器上转移出来之前要进行压缩和加密。此外还要保证拥有设计合理、有用关于安全、性能和稳定性问题设定,涉及防止数据败坏,其中诸多设定都是非常重要。 2.3.5 文献存储 1. 文献共享 1) HDFS(GFS) HDFS是Apache Hadoop项目中一种分布式文献系统实现,基于Google于10月刊登Google File System(GFS)论文。 n 特性 1) 硬件规定低 2) 高容错性 3) 易可扩展 4) 配备简朴 5) 超大文献 HDFS采用master/slave架构。 一种HDFS集群是由一种Namenode和一定数目Datanodes构成。 2) NFS与GFS比较 一方面从它们功能上进行分析。NFS即网络文献系统,是由SUN公司开发。它是FreeBSD支持文献系统中一种,容许一种系统在网络上与它人共享目录和文献。通过使用NFS,顾客和程序访问远端系统上文献就像访问本地文献同样。 而GFS是Google为了满足我司迅速增长数据解决规定而开发文献系统。GFS是一种可扩展分布式文献系统,用于大型、分布式、对大量数据进行访问应用。它是针对Google计算机集群进行设计,专门是为Google页面搜索存储进行了优化。 因此从功能上看,它们两者是完全不同概念。 另一方面从构造上比较,NFS至少涉及两个重要某些:一台服务器,以及至少一台客户机。被共享目录和文献存储在服务器上,客户机远程地访问保存在服务器上数据。 GFS则由一台Master(普通有几台备份)和若干台TrunkServer构成。GFS中文献备份成固定大小Trunk分别存储在不同 TrunkServer上,每个Trunk有多份(例如3)拷贝,也存储在不同TrunkServer上。Master负责维护GFS中 Metadata,即文献名及其Trunk信息。客户端先从Master上得到文献Metadata,依照要读取数据在文献中位置与相应 TrunkServer通信,获取文献数据。 再从跨平台性上,NFS基本原则是“容许不同客户端及服务端通过一组RPCs分享相似文献系统”,它是独立于操作系统,容许不同操作系统共同地进行文献共享。 而GFS则没有这一特点,文献只能被集群系统中PC所访问,并且这些PC操作系统普通是Linux。 最后从规模上比较,HDFS只应用在大批量数据共享上。当前Google拥有超过200个GFS集群,其中有些集群PC数量超过5000台。集群数据存储规模可以达到5个PB,并且集群中数据读写吞吐量可达到每秒40G。 而NFS普通没有这样巨大规模。 2. 文献多服务器自动同步 使用Linux 2.6内核inotify监控Linux文献系统事件。 运用开源lsync监听某一目录,如果目录内文献发生增、删、改,运用Rsync合同自动同步到多台服务器。 3. 图片服务器分离 特别是如果程序与图片都放在同一种 APAHCE 服务器下,每一种图片祈求均有也许导致一种 HTTPD 进程调用。 使用独立图片服务器不但可以避免以上这个状况,更可以对不同使用性质图片设立不同过期时间,以便同一种顾客在不同页面访问相似图片时不会再次从服务器(基于是缓存服务器)取数据,不但迅速,并且还省了带宽。尚有就是,对于缓存时间上,亦可以做独立调节。 2.3.6 网络问题解决方案 你不也许规定所有使用人员,都和你服务器在一种运营商网络内,而不同网络之间访问速度会很慢,咱们可以采用镜像网站和引入CDN来解决这一问题。 1. 智能DNS解析 咱们可以在不同网络运营商布置web服务器,通过linux上rsync工具自动同步到不同网络接入商web服务器上,以作为主站镜像。 然后通过配备智能DNS解析来引导不同网络访问顾客到相应网络运营商web服务器。 2. CDN 如果有足够投资,也可以采用CDN(内容分发网),把静态内容(静态页面和图片)进行CDN缓存,以减轻服务器压力。 CDN全称是Content Delivery Network,即内容分发网络。它采用了分布式网络缓存构造(即国际上流行web cache技术),其目是通过在既有Internet中增长一层新网络架构,将网站内容发布到最接近顾客网络"边沿",使顾客可以就近获得所需内容,解决 Internet网络拥挤状况,提高顾客访问网站响应速度。从技术上全面解决由于网络带宽小、顾客访问量大、网点分布不均等因素所导致顾客访问网站响应速度慢问题。 (也就是一种服务器内容,平均分部到各种服务器上,服务器智能辨认,让顾客获取离顾客近来服务器,提高速度。 当前,国内访问量较高大型网站如新浪、网易等,均使用CDN网络加速技术,虽然网站访问巨大,但无论在什么地方访问都会感觉速度不久。而普通网站如果服务器在网通,电信顾客访问很慢,如果服务器在电信,网通顾客访问又很慢。 2.3.7 WEB应用开发架构设计思路 1. 基于MVC三层应用开发架构 应用开发实现MVC三层架构进行web应用开发,采用ibatis作为持久层框架,c3p0作为数据库连接池。 iBATIS 是一种可以设计和实现更好 Java 应用程序持久化层框架。iBATIS 把对象和存储过程或者使用 XML 描述符 SQL 语句进行了关联。简朴是 iBATIS 最大优势 n ibatis-使用ibatis十个理由 1. 至少能操作10种以上数据库 2. 可配备caching(涉及从属) 3. 支持DataSource、local transaction managemen和global transaction 4. 简朴XML配备文档 5. 支持Map,Collection,List和简朴类型包装(如Integer,String) 6. 支持JavaBeans类(get/set 办法) 7. 支持复杂对象映射(如populating lists,complex object models) 8. 对象模型从不完美(不需要修改) 9. 数据模型从不完美(不需要修改) 10. 你已经懂得SQL,为什么还要学习其她东西 1) MVC架构示意 2) Struts架构 客户端发送一种HTTP祈求,通过Struts框架最后获得一种HTTP响应,这一过程非常重要,它是理解Struts框架重点。上图描述了Struts框架构造,而下图通过一种活动图更详细描述接受祈求直至返回响应整个过程: 2. 面向服务应用架构 面向服务应用架构是指构建可分布式、去中心化服务器平台,以提供许多不同应用,数据库被提成诸各种小某些,环绕每个某些都会创立一种服务接口(API),并且该接口是访问数据库唯一途径。最后数据库演变成一种非常庞大共享资源。 这种架构是松散耦合,并且环绕着服务进行构建。面向服务架构提供应她们隔离特性,一种服务也许有诸多台数据库服务器,她们之间数据是相通,而对外她们接口只有一种,外面是无法懂得这个服务背面数据组织是如何搭建。 这样就有了越来越多应用服务器。这些应用服务器从数据众多服务(每个服务背后均有数据库或集群数据库)中聚合信息,然后生成咱们所看到A各个网站页面。 这样各种服务如插件同样构成了一种开放平台,这样团队规模就会比较小,比较灵活。 注Amazon就是采用了这种架构来构 建,它拥有上千台服务器。 2.4 系统软件参数优化 在一定架构基本上,要提高并发解决能力则需要调节服务器操作系统内核参数、web服务器(tomcat参数、apache参数、Nginx参数),以使其性能达到最优化。 2.4.1 操作系统优化 调节系统内核参数,增大连接数及TCP/IP超时设立。 Linux系统中: 在/etc/sysctl.conf配备文献中增长如下内核参数: net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 5 2.4.2 tomcat服务器优化 增大并发连接数,调节内存参数设立。 1、JDK内存优化: 当应用程序需要内存超过堆最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因而普通建议堆最大值设立为可用内存最大值80%。 Tomcat默承认以使用内存为128MB,在较大型应用项目中,这点内存是不够,需要调大. Tomcat默承认以使用内存为128MB,Windows下,在文献/bin/catalina.bat,Unix下,在文献/bin/catalina.sh前面,增长如下设立: JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用最大内存】' 需要把这个两个参数值调大。例如: JAVA_OPTS='-Xms256m -Xmx512m' 表达初始化内存为256MB,可以使用最大内存为512MB。 2、连接器优化: 在tomcat配备文献server.xml中配备中,和连接数有关参数有: maxThreads: Tomcat使用线程来解决接受每个祈求。这个值表达Tomcat可创立最大线程数。默认值150。 acceptCount: 指定当所有可以使用解决祈求线程数都被使用时,可以放到解决队列中祈求数,超过这个数祈求将不予解决。默认值10。 minSpareThreads: Tomcat初始化时创立线程数。默认值25。 maxSpareThreads: 一旦创立线程超过这个值,Tomcat就会关闭不再需要socket线程。默认值75。 enableLookups: 与否反查域名,默认值为true。为了提高解决能力,应设立为false connnectionTimeout: 网络连接超时,默认值60000,单位:毫秒。设立为0表达永不超时,这样设立有隐患。普通可设立为30000毫秒。 maxKeepAliveRequests: 保持祈求数量,默认值100。 bufferSize: 输入流缓冲大小,默认值2048 bytes。 compression: 压缩传播,取值on/off/force,默认值off。 其中和最大连接数有关参数为maxThreads和acceptCount。如果要加大并发连接数,应同步加大这两个参数。 web server容许最大连接数还受制于*作系统内核参数设立,普通Windows是个左右,Linux是1000个左右。 2.4.3 apache服务器优化 加大并发数量和关闭不需要模块。由于apache非常消耗内存,尽量轻量化。 Apache在配备ContentType时候可以尽量少支持,尽量少LoadModule,保证更高系统消耗和执行效率 同步配备apache和tomcat组合使之能作到动静分离,apache解决静态页面,tomcat解决动态页面。 在解决静态页面或者图片、js等访问方面,可以考虑使用lighttpd代替Apache,它提供了更轻量级和更高效解决能力 2.4.4 Nginx服务器优化 worker_processes:该参数值最佳跟cpu核数相等,可以发挥最大性能,如果nginx所在服务器为2颗双核cpu,则建议设定为4。 3 Web服务架构评测 重要对基于tomcat和nginx+tomcatweb服务器解决性能进行测试,以作为不同性能规定下架构选型根据 3.1 测试环境 3.1.1 网络环境 1. 内网带宽 Ø 千M内网。 Ø 内网ping包延迟:< 0.1ms 2. 网络拓扑示意 3.1.2 服务器配备 设备 硬件配备 操作系统 Nginx IBM X3650 CPU:Intel(R) Xeon(R) E5150 2.66GHz 2核*2 内存:4G 千兆网卡 Redhat linux as4 Tomcat1 Hp DL580 G4 CPU:Intel(R) Xeon(TM) 3.40GHz 4核*2 内存:8G 千兆网卡 Redhat linux as5 Tomcat2 Hp DL580 G4 CPU:Intel(R) Xeon(TM) 3.40GHz 4核*2 内存:8G 千兆网卡 Redhat linux as5 Test1 Hp DL580 G5 CPU:Intel(R) Xeon(R) E7310 1.60GHz 4核*2 内存:4G 千兆网卡 Redhat linux as5 Test2 IBM X3650 CPU:Intel(R) Xeon(R) E5150 2.66GHz 2核*2 内存:4G 千兆网卡 Redhat linux as4 3.1.3 软件环境 1. 操作系统网络参数优化 用做测试各台服务器,均在/etc/sysctl.conf配备文献中增长如下内核参数: net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 5 2. Nginx设立 重要配备如下: user www www; worker_processes 4; error_log /usr/local/nginx/logs/nginx_error.log debug; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } http { include mime.types; default_type application/octet-stream; #charset gb2312; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; sendfile on; tcp_nopush on; keepalive_timeout 1; tcp_nodelay on; #gzip on; #gzip_min_length 1k; #gzip_buffers 4 16k; #gzip_http_version 1.0; #gzip_comp_level 2; #gzip_types text/plain application/x-javascript text/css application/xml; #gzip_vary on; upstream tomcats { server 192.168.131.57:8081; server 192.168.131.56:8081;- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全面 门户 网站 架构 设计 专项 方案
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文