欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    网络平台架构设计方案.doc

    • 资源ID:1617149       资源大小:701.50KB        全文页数:68页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    网络平台架构设计方案.doc

    大 型 网 络 平 台 架 构设计方案目录1网站的性能瓶颈分析.1.2系统架构设计 .3.2.1总体思路 .3.2.1.1负载均衡 .3.2.1.2WEB应用开发架构思路.3.2.1.3数据存储的设计思路.3.2.1.4不同网络用户访问考虑.4.2.2总体架构 .5.2.2.1网站的系统分层架构.5.2.2.2网站的物理架构 .6.2.2.3网站的开发架构 .7.2.2.4网络拓扑结构 .8.2.3架构涉及技术的详解.9.2.3.1负载均衡 .9.2.3.2缓存.1.5.2.3.3页面静态化 .1 9.2.3.4数据库配置及优化 .2 0.2.3.5文件存储 .2 1.2.3.6网络问题解决方案 .2 4.2.3.7WEB应用开发架构设计思路.2 62.4系统软件参数优化.3 0.2.4.1操作系统优化 .3 0.2.4.2tomcat服务器优化 .3 1.2.4.3apache服务器优化.3 3.2.4.4Nginx 服务器的优化 .3 3.3WEB 服务架构评测3.4.3.1测试环境 3.4.3.1.1网络环境3.4.3.1.2服务器配置 .3 5.3.1.3软件环境 .3 5.3.2测试结果 .4.0.3.2.1单个TOMCAT 的WEB服务器 .4 03.2.2Nginx+2 个TOMCAT 的WEB服务器 .4 13.2.3Nginx+2 个TOMCAT 的WEB服务器+缓冲 .4 23.3测试结果分析.4.3.3.4评测结果 .4.4.4配置选型 4.5.4.1网络带宽 4.5.4.2架构和硬件配置选型.4 6.4.2.1硬件配置参考 .4 6.4.2.2Web架构和硬件选型.4 7.4.3硬件扩容策略.4.8.4.3.1增加服务器 .4 8.4.3.2增加存储 .4 8.4.3.3升级服务器 .4 8.4.3.4网络扩容 .4 8.5附录:一些主流网站的真实数据4.91 网站的性能瓶颈分析网站的性能影响因素很多,下面主要从如下4个方面进行分析说明:1) 网络负载a) 公网负载b) 内网负载2) WEB 应用服务器性能a) CPUb) 存储, 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实现页面缓存 , 采用Memcache实d 现数据缓存4) 采用独立的图片服务器集群来实现图片资源的存储及WEB请求2.1.3 数据存储的设计思路1) 数据库拆分 , 把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库的集群。2) 采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。2.1.4 不同网络用户访问考虑1) 通过引入 CDN 来解决不同网络服务商的接入速度问题,一般只能解决静态页面的访问问题。2) 在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度问题。磁盘阵列柜磁盘阵列柜备注:1) 采用双防火墙双交换机做网络冗余,保障平台服务采用双防火墙通知接通 2线路互联网接入,设备之间采用 VRRP协议,在任何一个防火墙、 互联网发生故障后均可自动将流量切换到另一端,保证网站的正运行,设备或网络恢复后,自动恢复。采用双千兆交换机分别接在 2台防火墙上,当某台设备或者网络链路发生故障后, 好设备自动接管已坏设备的工作, 不影响网站的整体运行,根据业务及真实服务器的数量,交换机可以随时增加。2) 采用硬件设备负载均衡器,实现网络流量的负载均衡使用硬件设备负载均衡器, 将网络流量均衡的分担到WE服B 务器集群各节点服务器,保障平台服务器资源均衡的使用。3) 采用代理服务器,实现软件级的网络负载均衡。4) 数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写与后台查询统计进行分离,同时生产数据库采用rac技术进行2.3 架构涉及技术的详解2.3.1 负载均衡1. 基于DNS 的负载均衡 -一个域名绑定多个IPDNS 负载均衡技术是最早的负载均衡解决方案,它是通过DNS 服务中的随机名字解析来实现的,在DNS 服务器中,可以为多个不同的地址配置同一个名字,而最终查询这个名字的客户机将在解析这个名字时得到其中的一个地址。因此,对于同一个名字,不同的客户机会得到不同的地址, 它们也就访问不同地址上的Web服务器,从而达到负载均衡的目的。这种技术的优点是,实现简单、实施容易、成本低、适用于大多数TCP/IP 应用;但是,其缺点也非常明显,首先这种方案不是真正意义上的负载均衡, DNS服务器将 Http 请求平均地分配到后台的Web 服务器上, 而不考虑每个 Web 服务器当前的负载情况;如果后台的Web 服务器的配置和处理能力不同, 最慢的Web 服务器将成为系统的瓶颈,处理能力强的服务器不能充分发挥作用;其次未考虑容错,如果后台的某台Web 服务器出现故障, DNS 服务器仍然会把DNS请求分配到这台故障服务器上,导致不 能响应客户端。最后一点是致命的,有可能造成相当一部分客户不能享受 Web 服务,并且由于DNS 缓存的原因,所造成的后果要持续相当长一段时间(一般DNS 的刷新周期约为24小时) 。所以在国外最新的建设中心Web 站点方案中,已经很少采用这种方案了。2. 通过硬件四层交换实现负载均衡在硬件四层交换产品领域,有一些知名的产品可以选择,比如Alteon 、F5等,这些产品很昂贵,但是物有所值,能够提供非常优秀的性能和很灵活的管理能力。 Yahoo中国当初接近 2000台服务器使用了三四台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) SquidSquid是一个开源的软件,利用它的反向代理技术可以提高网站系统的访问速度 , 下面将重点介绍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) NginxNginx (“ engine x”)是俄罗斯人 Igor Sysoev(塞索耶夫 ) 编写的一款高性能的HTTP 和反向代理服务器。Nginx已 经 在 俄 罗 斯 最 大 的 门 户 网 站 RamblerMedia( www.rambler.ru)上运行了 4年时间,同时俄罗斯超过20%的虚拟主机平台采用 Nginx 作为反向代理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易 博客、金山逍遥网、金山爱词霸、校内网、YUPO相O册、豆瓣、迅雷看看等多家网站、频道使用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 编码哈希后保存;Nginx 的Web 缓存服务只能为指定URL 或状态码设置过期时间, 不支持类似Squid 的PURGE 指令,手动清除指定缓存页面;采用 MMAP 实现,设置的缓存区大小不能超过物理内存+SWEB 的值3) 基于memcached 的缓存nginx对memcached有所支持,但是功能并不是特别之强,性能上还是非常之优秀。location /mem/ if ( $uri "/mem/(0-9A-Za-z_*)$" )set $memcached_key "$1" memcached_pass192.168.1.2:11211;expires 70;这个配置会将指明到 memcached的abc这个 key去取数据。Nginx目前没有写入memcached的任何机制,所以要往memcached 里写入数据得用后台的动态语言完成,可以利用404定向到后端去写入数据。Nginx传统缓存的缺点也是它和 squid等缓存软件的不同之特色,所以也可看作其优点。在生产应用中它常常用作和squid的搭档, squid对于带?的链接往往无法阻挡,而 nginx 能将其访问拦住,例如: 在/ squid上会被当做两个链接,所以会造成两次穿透;而 nginx只会保存一次,无论链接变成 是 均不能透过nginx缓存,从而有效地保护了后端主机。nginx会非常老实地将链接形式保存到文件系统中,这样对于一个链接,可以很方便地查阅它在缓存机器上的缓存状态和内容,也可以很方便地和别的文件管理器如 rsync等配合使用,它完完全全就是一个文件系统结构。2. 应用程序方面的缓存1) OSCacheOSCache 由OpenSymphony 设计, 它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能,OSCache 是个一个广泛采用的高性能的J2EE 缓存框架, OSCache 能用于任何 Java 应用程序的普通的缓存解决方案。OSCache 有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp 页面或 HTTP 请求,任何 java 对象都可以缓存。拥有全面的 API-OSCacheAPI给你全面的程序来控制所有的OSCache 特性 。 永 久 缓 存 - 缓 存 能 随 意 的 写 入 硬 盘 , 因 此 允 许 昂 贵 的 创 建( expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群-集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期-你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。OSCache 是当前运用最广的缓存方案,JBoss,Hibernate,Spring等都对其有支持。OSCache 的特点:1) 缓存任何对象:你可以不受限制的缓存部分jsp 页面或 HTTP 请求, 任何java 对象都可以缓存。2) 拥有全面的 API:OSCache API允许你通过编程的方式来控制所有的OSCache 特性。3) 永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器的多次生命周期间缓存创建开销昂贵的数据。4) 支持集群:集群缓存数据能被单个的进行参数配置,不需要修改代码。5) 缓存过期:你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不能满足需要时)。2) Memcachedmemcache是d 高性能的 分布式内存缓存服务器。一般的使用目的是, 通过缓存数据库查询结果, 减少数据库访问次数, 以提高动态 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 是ApacheHadoop 项目中的一个分布式文件系统实现,基于Google 于2003 年10 月发表的 Google File System(GFS)论文。特性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 ,根据

    注意事项

    本文(网络平台架构设计方案.doc)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开