《大型网站技术架构:核心原理与案例分析》拜读总结——第一章
2017-05-25 22:46
155 查看
一:大型网站软件系统的特点
1.高并发,大流量:需要面对高并发用户,大流量访问
2.高可用:系统7*24小时不间断服务
3.海量数据:需要存储,管理海量数据,需要使用大量服务器
4.用户分布广泛,网络情况复杂:许多大型互联网为全球用户提供服务,用户分布广泛,各地区网络情况千差万别
5.安全环境恶劣:由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击
6.需求快速变更,发布频繁:互联网产品为快速适应市场,满足用户需求,其产品发布频率极高
7.渐进式发展:与传统软件或企业应用系统一开始就规划好全部功能需求不同,几乎所有大型互联网站都是从一个小网站开始,渐进发展起来的
二:大型网站架构演化发展历程
1.初始阶段:只需一台服务器:
2.应用服务和数据服务分离:应用服务器,文件服务器,数据库服务器:
3.使用缓存改善网站性能:网站访问特点遵循二八定律:80%业务访问集中在20%的数据上,把这20%的数据缓存在内存中,提升网站的数据访问速度:
本地缓存:访问速度更快一些,但是受内存容量限制
远程分布式缓存:以集群的方式,理论上可以做到不受内存容量限制
4.应用服务器集群——改善并发处理能力
集群是网站解决高并发,海量数据问题的常用手段:
5.数据库读写分离:
配置两台数据库主从关系,实现读写分离,改善数据库负载压力
6.使用反向代理和CDN加速网站响应
网站想要加速访问速度,主要手段有使用CDN,和反向代理:其基本原理都是缓存,区别:CDN部署在网络提供商机房,用户访问网站时,从离自己最近的网络商机房获
取数据;反向代理部署在网站中心机房,用户访问请求到达中心机房后,首先访问反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就直接返回
7.分布式文件系统和分布式数据库系统:
分布式数据库是网站数据库拆分的最终手段,只在单表数据规模非常庞大时使用,不到万不得已,网站更常用的数据库拆分手段是业务分库,将不同业务数据库部署在
不同物理服务器上:
8.使用NoSQL和搜索引擎:
对数据存储和检索的需求越来越复杂时:
9.业务拆分:
将网站拆分成许多不同的应用,应用之间可通过超链接建立联系,也可通过消息队列进行数据分发,最多的还是通过访问同一个数据存储系统来构建一个关联的系统
10.分布式服务:
网站拆分开的子业务应用需要执行相同的业务操作,比如:用户管理,商品管理等,将这些公共业务提取出来,独立部署。由这些可复用的业务连接数据库,应用系统只需要管理用户界面:
1.高并发,大流量:需要面对高并发用户,大流量访问
2.高可用:系统7*24小时不间断服务
3.海量数据:需要存储,管理海量数据,需要使用大量服务器
4.用户分布广泛,网络情况复杂:许多大型互联网为全球用户提供服务,用户分布广泛,各地区网络情况千差万别
5.安全环境恶劣:由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击
6.需求快速变更,发布频繁:互联网产品为快速适应市场,满足用户需求,其产品发布频率极高
7.渐进式发展:与传统软件或企业应用系统一开始就规划好全部功能需求不同,几乎所有大型互联网站都是从一个小网站开始,渐进发展起来的
二:大型网站架构演化发展历程
1.初始阶段:只需一台服务器:
2.应用服务和数据服务分离:应用服务器,文件服务器,数据库服务器:
3.使用缓存改善网站性能:网站访问特点遵循二八定律:80%业务访问集中在20%的数据上,把这20%的数据缓存在内存中,提升网站的数据访问速度:
本地缓存:访问速度更快一些,但是受内存容量限制
远程分布式缓存:以集群的方式,理论上可以做到不受内存容量限制
4.应用服务器集群——改善并发处理能力
集群是网站解决高并发,海量数据问题的常用手段:
5.数据库读写分离:
配置两台数据库主从关系,实现读写分离,改善数据库负载压力
6.使用反向代理和CDN加速网站响应
网站想要加速访问速度,主要手段有使用CDN,和反向代理:其基本原理都是缓存,区别:CDN部署在网络提供商机房,用户访问网站时,从离自己最近的网络商机房获
取数据;反向代理部署在网站中心机房,用户访问请求到达中心机房后,首先访问反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就直接返回
7.分布式文件系统和分布式数据库系统:
分布式数据库是网站数据库拆分的最终手段,只在单表数据规模非常庞大时使用,不到万不得已,网站更常用的数据库拆分手段是业务分库,将不同业务数据库部署在
不同物理服务器上:
8.使用NoSQL和搜索引擎:
对数据存储和检索的需求越来越复杂时:
9.业务拆分:
将网站拆分成许多不同的应用,应用之间可通过超链接建立联系,也可通过消息队列进行数据分发,最多的还是通过访问同一个数据存储系统来构建一个关联的系统
10.分布式服务:
网站拆分开的子业务应用需要执行相同的业务操作,比如:用户管理,商品管理等,将这些公共业务提取出来,独立部署。由这些可复用的业务连接数据库,应用系统只需要管理用户界面:
相关文章推荐
- 第一章 集合与简易逻辑知识总结
- C# 第一章课后总结
- WCF 第一章 总结
- 《信息检索导论》第一章总结
- 信息资源管理第一章总结
- 《UNIX环境高级编程》第一章总结
- WCF 第一章 总结
- USACO 第一章总结
- 《信息检索导论》第一章总结
- 第一章 第十二节 总结
- 第一章,学习和总结
- 控制你的CPU占用率,读编程之美第一章的一点总结
- java servlet and jsp cookbook 第一章 读后总结
- 1.9 - 第一章:PHP基础 - 总结
- Essential C++ 第一章,猜数代码分析ch1_main.cpp + 知识点总结
- Points on C 第一章总结
- 第一章 集合与简易逻辑知识总结
- Java学习第一章总结
- 数电知识点总结第一章:数制和码制
- 第一章 总结