大型web应用构建方法.pdf

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大型web应用构建方法

大型web应用构建方法 随着互联网业务的不断丰富,互联网用户数的不断膨胀,已产生很多巨型的web应用, 如大型门户网站、SNS应用、有哪些信誉好的足球投注网站引擎。web应用相关的技术经过这些年的发展,已经细 分到很多方面,尤其对于大型web应用来说,所采用的技术涉及非常广,硬件、软件、编 程语言、数据库、WebServer、防火墙等,已经不是原来简单的html静态网站所能比拟 的。面对大量用户访问、高并发请求时,我们关心的根本是什么?对系统内单机而言,是I O能力和CPU性能,对系统整体而言,是网络性能和数据库,所有这些是构成高性能的基 本因素。 对大型web应用,比如门户网站。可以做硬件扩展:使用更高性能或更多的服务器、 更高性能的数据库。这类扩展可以起到立竿见影的效果,随着访问量和数据量的增长,扩容 意味着需要更大的投入,是一个扩展性/价格比较差的方案,还没法根本解决大型网站面临 的高负载和高并发问题。 另外一种较好的思路是充分挖掘现有硬件和系统的潜能,在系统设计、实现和优化上做 文章,实现低成本、高性能和高扩张性。 1 基本思想 1 基本思想 11 基基本本思思想想 1.1 1.1 11..11 分解 通常情况下,分解后可以承受更多的访问量,而且对硬件的需求可能不会很高,可以根 据访问和用户行为合理进行组合调整和扩充,这样的系统伸缩性就高了。分解的好处是灵活 性、伸缩性、隔离性以及安全性。 1. 域名拆分:当我们一个网站有多个功能的时候,可以考虑把这个网站拆分成几个小 模块,每一个模块可以是一个网站,这样的话我们到时候就可以很灵活地去把这些 网站部署到不同的服务器上。 2. 动静分离:静态文件和动态文件最好分离,我们知道静态文件访问和动态文件访问 对服务器来说压力的侧重不同,前者重IO,后者重CPU,根据这个特点,在选择硬 件的时候也可以有侧重,而且静态和动态内容的缓存策略也不一样。典型的应用, 我们一般会有独立的文件或图片服务器。而且,使用不用的域名还可以提高浏览器 并行加载的能力。 3. 功能切分:比如有一个模块是负责上传的,上传操作很消耗时间,如果和其它应用 混在一起的话很可能,一点点访问就会使服务器瘫痪,这种特殊的模块应该分开。 安全的不安全的也要分开,还需要考虑到以后SSL的购买。 4. 对于涉及到数据库访问的动态程序来说,我们可以使用一个中间层(所谓的应用层 或逻辑层)来访问数据库(部署在独立的服务器上),最大的好处就是缓存和灵活性。 缓存的内存占用比较大,可以把它和网站进程分开,这样做可以很方便的去改变一 些数据访问的策略。 1.2 合并 1.2 合并 11..22 合合并并 适当的合并可以提供系统的承载能力。 1. 合并用户请求,最基本的就是合并CSS/图片/脚本,还可以合并页面。不过合并就 可能产生流量的浪费,需要有一个平衡点。 2. 合并接口的粒度,如果做分布式应用的话,我们可能不会直接访问数据库而是调用 应用层提供的接口,由于是网络调用,代价比较大,因此在设计的时候尽量提供粒 度比较粗的接口,一次调用返回比较多的数据,而不是细化到添加删除修改的层次。 3. 合并接口的部署,对于频繁的跨机器调用可以考虑有一些数据冗余,把跨网络的服 务编成进程间通讯,甚至转到客户端来做。比如日志脏词的过滤,直接调用应用层 提供的接口是可以的,但是可能代价比较大,可以把这个接口使用IPC方式部署在 本机。 1.3 转换 1.3 转换 11..33 转转换换 时间换空间,空间换时间 1. 缓存。缓存的重要性早计算机的硬件中就有重要的体现。对于网站,有很多种缓存, 可以是客户端资源的缓存,可以是页面输出缓存,也可以是应用层的数据缓存,目 的都是一样的,或是减少了服务器请求次数,或是减少了请求的处理过程,或是减 少了数据库的访问次数。当然,生成静态文件也可以算是一种缓存。不访问磁盘固 然不可能,但是我们要极大限度降低磁盘访问的机会。 2. 有的时候为了获取极快的响应,我们还会不惜代价采用重复计算。比如,我们的某 个操作很可能会由于网络问题等原因响应比较慢,在设计的时候可以有一个统一的 处理接口,由这个接口分发到不同的服务器去

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档