1.2 大型网站架构演化发展过程[读书敲录]

大型网站技术挑战主要来自庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得很棘手。大型网站架构主要就是解决这类问题。

1.2.1初始阶段的网站架构

大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来。小型网站最开始的时没有太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如图1.1所示。

图1.1初始阶段的网站架构

应用程序、数据库、文件等所有资源都在一台服务器上。通常服务器操作系统使用Linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用MySQL,汇集各种免费开源软件及一台廉价服务器就可以开始网站的发展之路了。

1.2.2应用服务和数据服务分离

     随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时就需要将应用和数据分离。应用和数据分离后整个网站使用三台服务器:应用服务器、文件服务器和数据服务器,如图1.2所示。这三台服务器对硬件资源的要求各不相同,应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU;数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存;文件服务器需要存储大量用户上传的文件,因此需要更大的硬盘。

图1.2 应用服务和数据服务分离

应用和数据分离后,不同特性的服务器承担不同的服务角色,网站的并发处理能力和数据存储空间得到了很大改善,支持网站业务进一步发展。但是随着用户逐渐增多,网站又一次面临挑战;数据库压力太大导致访问延迟,进而影响整个网站性能,用户体验受到影响。这时需要对网站架构进一步优化。

1.2.3使用缓存改善网站性能

网站访问特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。淘宝买家浏览的商品集中在少部分成交数多、评价良好的商品上;百度搜索关键词集中在少部分热门词汇上;只有经常登录的用户才会发博客、看博客,而这部分用户也只占总用户数目的一小部分。

既然大部分的业务访问集中在一小部分数据上,那么如果把这一小部分数据缓存在内存中,是不是就可以减少数据库的访问压力,提高整个网站的数据访问速度,改善数据库的写入性能了呢?

网站使用的缓存可以分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数据量有限,而且会出现和应用程序争用内存的情况。远程分布式缓存可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务,如图1.3所示。

图1.3 网站使用缓存

使用缓存后,数据访问眼里得到有效缓解,但是单一应用服务器能够处理的请求连接有线,在网站访问高峰期,应用服务器成为整个网站的瓶颈。

1.2.4使用应用服务器集群改善网站的并发处理能力

使用集群是网站解决高并发、海量数据问题的通常手段。当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,多满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。

对网站架构而言,只要能通过增加一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性。应用服务器实现集群是网站可伸缩集群架构设计中较为简单成熟的一种,如图1.4所示。

图1.4应用服务器集群部署

通过负载均衡调度服务器,可将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈。

时间: 2024-10-11 10:16:26

1.2 大型网站架构演化发展过程[读书敲录]的相关文章

(转)大型网站架构演化发展历程

前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节. 大型网站技术主要的挑战来自于庞大的用户.高并发以及海量的数据这三个方面.大型网站的形成就像一颗大树的成长,历尽长时间的磨练,最后枝繁叶茂,服务他人. 初始网站架构结构 起初的网站鉴于用户量.访问量较少,只需要一台服务器足以,应用程序.数据库.文件等其所有资源放在一太服务器上就已经足够满足此时的需求,这时候网站的架构就几个简单组成部分如下图 应用和数据服务分离 随着网站业务需求的发展,越来越多的用户进行访问,此时一

大型网站架构演化发展历程(一)

1.初始阶段的网站架构 大型网站都是由小型网站发展而来,网站架构也是一样.小型网站最开始没有多少人访问,只需要一台服务器就绰绰有余. 2.应用服务和数据服务分离 随着网站业务的发展,越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足.这时就需要将应用和数据分离.这时需要三台服务器:应用服务器.文件服务器和数据库服务器,如下图.这三台服务器对硬件的资源要求各不相同:应用服务器需要处理大量的业务逻辑,需要更快更强大的CPU:数据库服务器需要快速检索磁盘和缓存,因此需要更快的磁盘和更大

大型网站架构演化发展历程

初始阶段的网站 小型网站没有多少人访问,一个机器即可:应用服务,文件服务,数据库服务.三个服务全部在一起. 应用服务与数据服务分离 随着用户量的增加,一个服务器已不能满足需求.这个时候将服务拆分,分别安装在三个服务器上:应用服务器,文件服务器,数据库服务器. 应用服务器需要对业务逻辑进行处理,对CPU的性能要求较高.数据库服务器对数据快速检索.保存等操作要求高,因而对硬盘和内存有很大需求. 文件服务器主要对磁盘要求较高. 使用缓存改善网站性能

大型网站技术架构(一):大型网站架构演化

第一章:大型网站架构演化 九层之台,始于垒土:千里之行,始于足下. 对于网站的发展,亦是如此,从上世纪90年代开始,互联网经历了20多年的发展,发生了翻天覆地的变化,今天,全球有一半的人使用互联网,从信息检索到实时通信,从电子购物到文化娱乐,互联网渗透到了生活的每一个角落.但是,构建一个高性能的网站,绝非一朝一夕可以完成,我们来看下,作为一个大型网站系统应有的特点: 1.大型网站系统应有的特点 高并发,大流量:需要面对高并发用户,大流量访问.举个例子,去往迪拜的飞机有200张票,但是有100w人

大型网站架构演化历程

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手.大型网站架构主要就是解决这类问题. 本文内容大部分来自<大型网站技术架构>,这本书很值得一看,强烈推荐. 大型网站系统的特点 高并发,大流量 需要面对高并发用户,大流量访问.Google 日均 PV 35 亿,日 IP 访问数 3 亿:腾讯 QQ 的最大在线用户数 1.4 亿(2011年数据). 高可用 系统 7 x 24 小时不间断服务. 海量数据 需要存

《大型网站技术架构-核心原理与案例分析》之一: 大型网站架构演化

最近刚刚读完李智慧的<大型网站技术架构-核心原理与案例分析>,对每章重点内容作了一些笔记,以便加深印象及日后查阅. 一.大型网站软件系统的特点 高并发,大流量:需要面对高并发用户,大流量访问. 高可用:系统7X24小时不间断服务. 海量数据:需要存储.管理海量数据,需要使用大量服务器. 用户分布广泛,网络情况复杂:许多大型互联网都是为全球用户提供服务的,用户分布范围广,各地网络情况千差万别. 安全环境恶劣:由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击. 需求快

大型网站架构演化过程

一:大型网站架构演化 1.初级阶段网站架构 应用服务器,数据库,文件等所有的资源都在一台服务器上,采用LAMP架构,一般我们学生开发就是采用这种架构 2.应用服务与数据服务分离(应用与数据分离) 随着网站业务的发展,一台服务器已经不能满足性能的需求,这时我们把业务服务和数据服务分开,此时网站就变成了三个服务器:应用服务器,数据库服务器,文件服务器,一般小型项目就是这种开发模式,比如我    在360我们组的项目初期没有用缓存,就是这种架构,数据库有专门的服务器 应用服务器    -> 需要处理业

《大型网站技术架构》读书笔记一:大型网站架构演化

一.大型网站系统特点 (1)高并发.大流量:PV量巨大 (2)高可用:7*24小时不间断服务 (3)海量数据:文件数目分分钟xxTB (4)用户分布广泛,网络情况复杂:网络运营商 (5)安全环境恶劣:黑客的攻击 (6)需求快速变更,发布频繁:快速适应市场,满足用户需求 (7)渐进式发展:慢慢地运营出大型网站 二.大型网站架构演化过程 (1)初始阶段网站架构:一台Server就刚需-应用程序.数据库.文件等所有资源都集中在一台Server上,典型案例:基于LAMP架构的PHP网站 (2)应用和数据

大型网站架构演化

一.大型网站系统特点 (1)高并发.大流量:PV量巨大 (2)高可用:7*24小时不间断服务 (3)海量数据:文件数目分分钟xxTB (4)用户分布广泛,网络情况复杂:网络运营商 (5)安全环境恶劣:黑客的攻击 (6)需求快速变更,发布频繁:快速适应市场,满足用户需求 (7)渐进式发展:慢慢地运营出大型网站 二.大型网站架构演化过程 (1)初始阶段网站架构:一台Server就刚需—应用程序.数据库.文件等所有资源都集中在一台Server上,典型案例:基于LAMP架构的PHP网站 (2)应用和数据