学习《大型网站技术架构》第一章所摘抄的重点内容,感兴趣的同窗能够直接去读这本书。。。数据库
1.高并发,大流量 : 须要面对高并发用户,大流量访问。后端
2.高可用 : 系统须要24小时不间断服务。浏览器
3.海量数据 : 须要存储、管理海量数据,须要使用大量服务器。缓存
4.用户分布普遍,网络状况复杂 : 许多大型互联网都是为全球用户提供服务的,用户分布范围广,各地网络状况复杂。安全
5.安全环境恶劣 : 因为互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎天天都会被黑客攻击。服务器
6.需求快速变动,发布频繁 : 和传统软件的版本发布频率不一样,互联网产品为更快速使用市场,知足用户的需求,其产品发布频率是极高的。网络
7.渐进式发展 : 与传统软件产品或企业应用系统一开始就规划好所有的功能和非功能需求不一样,几乎全部的大型网站都是从一个小型网站开始,渐进的发展起来的。架构
特色 : 应用程序、数据库、文件等全部的资源都在一台服务器。并发
架构图 : 负载均衡
解决问题 : 愈来愈多的用户访问致使性能愈来愈差,愈来愈多的数据致使存储空间不足。
特色 : 将应用和数据分离,整个网站使用三台服务器,应用服务器(须要更快更强大的CPU)、文件服务器(须要更大的硬盘)、数据库服务器(须要更快地硬盘和更大的内存)。
架构图 :
解决问题 : 随着用户不断增多,数据库压力太大致使访问延迟。
特色 : 根据二八定律,80%的业务访问集中于20%的数据上,因此将这一小部分数据缓存在内存中
缓存方式:
1.本地缓存:速度更快,可是受应用服务器内存限制,其缓存数据量有限,并且会出现和应用程序争用内存的状况。
2.远程缓存:以实用集群的方式,部署大内存服务器做为专门的缓存服务器,能够在理论上作到不受容量限制的缓存服务。
架构图 :
解决问题 : 使用缓存后,数据访问压力获得有效缓解,可是单一应用服务器可以处理的请求链接有限,在网站访问高峰期,应用服务器成为整个网站的瓶颈。
特色 : 应用服务器实现集群,经过负载均衡调度服务器,可未来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,若是有更多的用户,就在集群中加入更多的 应用服务器,使应用服务器的负载压力再也不成为整个网站的瓶颈。
架构图 :
解决问题 : 网站在使用缓存后,绝大多数数据读操做访问均可以不经过数据库就能够完成,可是仍有一部分读操做和所有的写操做须要访问数据库,在网站的用户达到必定规模后, 数据库由于负载压力太高为成为网站的瓶颈。
特色 : 经过配置两台数据库主从关系,能够将一台数据库服务器的数据更新同步到另外一台服务器上,网站利用数据库的这一功能,实现数据库的读写分离,从而改善数据库负载压 力。为了便于应用程序访问读写分离后的数据库,一般在应用服务器端使用专门的数据访问模块,是数据库读写分离对应用透明。
架构图 :
解决问题 : 随着网站业务不断发展,用户规模愈来愈大,因为中国复杂的网络环境,不一样地区的用户访问网站时,速度差异也极大。
特色 : 使用CDN可反向代理尽早返回数据给用户,一方面加快用户访问速度,另外一方面也减轻后端服务器的负载压力。
架构图 :
解决问题 : 任何强大的单一服务器都知足不了大型网站持续增加的业务需求.
特色 : 使用分布式数据库、分布式文件系统。(不到不得已时,网站更经常使用的数据库拆分手段是业务分库,将不一样业务的数据库部署在不用的物理服务器上)。
架构图 :
解决问题:随着网站业务愈来愈复杂,对数据存储和检索的需求也愈来愈复杂,网站须要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。
特色 : 应用服务器经过一个统一数据访问模块访问各类数据,减轻应用程序管理诸多数据源的麻烦。
架构图 :
解决问题 : 大型网站为了应对日益复杂的业务场景,经过使用分而治之的手段将整个网站业务分为不一样的产品线,如大型购物交易网站就会将首页、商铺、订单、买家、卖家等拆分红 不一样的产品线,分归不一样的业务团队负责。
特色 : 将一个网站拆分为许多不一样的应用,每一个应用独立部署维护。
架构图 :
解决问题 : 随着业务拆分愈来愈小,存储系统愈来愈庞大,应用系统的总体复杂度呈指数增长,部署维护愈来愈困难。
特色 : 将共用业务提取出来,独立部署。由这些可复用的业务链接数据库,提供共用业务,而应用系统只须要管理用户界面,经过分布式服务调用共用业务服务完成具体业务操做。
架构图 :