更多课程 选择中心


Web培训

400-111-8989

Web培训

构建可伸缩的Web架构-可伸缩Web开发技术

  • 发布:佚名
  • 来源:网络
  • 时间:2018-03-01 14:53

本文面向创业公司的工程师,介绍可伸缩的Web开发技术。伸缩性是指系统可以根据需求和成本调整自身处理能力的一种特性。伸缩性意味着系统可以改变自身的处理能力以满足更多用户访问处理更多数据而不会对用户体验造成任何影响。

互联网创业的一个特点是开始的时候规模都很小,几个人的小团队,少量的启动资金,就开始创业了。Google是从斯坦福的实验室开始创业的,Facebook是从哈佛的宿舍里开始创业的,Alibaba是从马云家的客厅开始创业的。刚开始的时候,用户也少,所以只要一台服务器就可以应付所有的用户访问,这时整个Web系统架构如图1。数据库、Web应用、文件服务都部署在一台服务器上。

互联网创业早期最简单的Web系统架构

图1 互联网创业早期最简单的Web系统架构

如果创业方向正确,产品解决用户痛点,能为社会创造价值,就会有更多用户来访问网站。这时,Web系统受计算资源不足影响,会出现响应延迟,打不开网站等情况。解决方法有两种,一种方法是使用更强大计算能力的计算机,另一种方法是使用更多的计算机。方法主要问题在于再强大的计算机也都有资源限制,而一个成功的网站的终极目标是服务全世界,随着网站的发展,不管多强大的计算机迟早也会遇到计算资源不足的问题;而且越强大的计算机其价格也越昂贵,这也是刚刚起步的创业公司不能承受的。所以几乎所有的互联网公司都选择了第二种方法,即构建一个弹性可伸缩的Web系统,通过逐步向系统中增加服务器从而提高整个系统的计算处理能力。

增加服务器的一个基本手段是将不同的服务部署在不同的服务器上,应用服务器,数据库服务器,文件服务器独立部署,如图2。

进行简单拆分独立部署的Web系统架构

图2 进行简单拆分独立部署的Web系统架构

此外,还可以将不同的模块拆分到不同的服务器。比如一个电子商务网站,商城、论坛、卖家这些相对独立的模块可以独立部署,即使在商城系统内部,首页、商品列表、商品详情、订单等子模块也可以进一步独立部署,如图3。

按功能模块进一步拆分独立部署的Web系统架构

图3 按功能模块进一步拆分独立部署的Web系统架构

事实上随着业务不断发展,网站需要使用更多的服务,缓存、消息队列、搜索、NoSQL、反向代理等,还需要将静态内容服务从应用服务器中分离出来,以及使用CDN(内容分发网络)进行静态内容访问加速。这些服务都应该部署在独立的服务器上,通过使用更多的服务器提高网站的整体处理能力。

这些可以分拆的功能和服务虽然已经独立部署,但是每个功能或者服务如果只能部署在一台服务器上,能够提供的计算能力以及能够处理的并发访问依然有限。解决方法是通过集群的方式将单一服务部署在多台服务器上,从而提供更强大的处理能力,如图4。

集群部署的Web系统架构

图4 集群部署的Web系统架构

总之,可伸缩网站架构的核心思路就是通过分拆集群等手段向Web系统中添加各种服务器,为系统提供更多计算、存储、传输能力,这些服务器能有效分担系统访问压力,使Web系统能够支撑更多用户访问、存储更多数据而不至于影响用户体验。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:移动开发必须掌握的的六大JavaScript框架
下一篇:用HTML5/CSS3/JS开发Android/iOS应用框架大全
  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

贵州省

云南省

广西省

海南省