《大型网站技术架构》学习总结(1)

1.1
大型网站软件系统的特点
高并发,大流量;高可用性,应对宕机;海量数据;用户分布广泛,网站情况复杂;安全环境恶劣;需求快速变更、发布频繁;渐进式发展

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

1.2.1初始阶段
从小型网站架构演化到大型网站
所有资源在一台服务器上,Linux + PHP + Apache + MySQL
《大型网站技术架构》学习总结(1)

1.2.2应用服务和数据服务分离
数据增多导致存储空间不足,需要把数据和应用分开,需要一个应用服务器、文件服务器和数据服务器。应用服务器处理大量的业务逻辑,需要更快更强大的CPU;
数据服务器需要快速磁盘检索和数据缓存,需要更快的硬盘和更大的内存;文件服务器需要更大的硬盘。
《大型网站技术架构》学习总结(1)

1.2.3使用缓存
网站使用的缓存分两种,还存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存,本地的访问速度更快,但是数据量有限,会和应用程序争内存;远程分布式缓存
可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器。

《大型网站技术架构》学习总结(1)
1.2.4使用应用服务器集群改善网站的并发处理能力
通过负载均衡调度服务器,将请求分发到集群中去。
《大型网站技术架构》学习总结(1)

1.2.5 数据库读写
使用主从热备功能,用过配置数据库主从关系,将数据同步更新,实现数据库读写分离

《大型网站技术架构》学习总结(1)

1.2.6使用反向代理和CDN加速网站响应
CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,请求网站服务时,从距离自己最近的网络提供商获取数据;
反向代理部署在网站的中心机房,请求首先访问的服务器是反向代理服务器,如果服务器中缓存着所需的资源,就直接返回给用户
《大型网站技术架构》学习总结(1)

1.2.7使用分布式文件系统和分布式数据库系统
在单表数据规模非常庞大时,使用分布式数据库让业务分库,将不同的数据库部署在不同的物理服务器上。《大型网站技术架构》学习总结(1)

1.2.8使用NoSQL和搜索引擎
《大型网站技术架构》学习总结(1)

1.2.9业务拆分
将网站的业务分成不同的产品,如购物网站将首页、商铺、订单和买家拆分成不同的产品线,也会根据产品线划分,讲一个网站拆分成不同的应用,每个应用独立部署维护,应用间可以通过一个超链接建立关系,也可以通过消息队列进行数据分发《大型网站技术架构》学习总结(1)
1.2.10分布式服务
《大型网站技术架构》学习总结(1)

少有能从小型再到大型的架构经历,不是必须要经历,但要有了解。