首页 > 代码库 > 《大型网站技术架构》-第一章随笔

《大型网站技术架构》-第一章随笔

1.高并发、大流量;

2.高可用;

3.海量数据;

4.用户分布广泛;

5.安全环境恶劣;

6.需求快速变更,发布版本快速;

7.渐进式发展,架构随着业务不停优化深入;

二. 大型互联网站架构演化发展历程:

1. 应用程序(PHP开发部署在Apache上)、数据库(MySQL)、文件都放在一台应用服务器(Linux操作系统)上,即LAMP;

技术分享

2. 应用服务和数据服务分离----把应用、数据分离

随着业务的发展,一台服务器逐渐不能满足要求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时就需要把应用和数据分离,分离后网站使用三台服务器:应用服务器、文件服务器、数据库服务器。应用服务器需要强大的CPU处理逻辑运算,数据库服务器需要更加的硬盘空间和内存,文件服务器需要更大的硬盘空间。

技术分享

3. 使用缓存改善性能----改善访问数据库频次

这个不多说了,扛住一些经常访问数据的高并发流量冲击减轻访问数据库压力。

缓存分为:本地缓存(应用服务器缓存)和远程缓存(分布式缓存服务器上的缓存)。

本地缓存:速度更快,但是缓存大小有限,而且会和应用程序争用内存。

远程缓存:即分布式缓存,理论上可以做到无限扩容。

技术分享

4.使用应用服务器集群改善网站的并发处理能力----改善服务器处理性能

通过集群增加网站处理请求的能力,并提高网站的高可用性。通过F5向应用服务器集群分发用户请求,通过水平扩容使应用服务器的负载压力不在成为网站瓶颈

技术分享

5. 数据库读写分离----改善数据库处理性能

数据库分成主从库,主库负责写入数据及向从库同步数据,从库负责读取数据(没有命中缓存)。

技术分享

6. 反向代理和CDN加速----本质上仍然是缓存,用来减轻后端服务器的负载压力。

CDN:部署在运营商的机房,用户在请求数据时,先到离自己最近的网络提供商机房获取数据;

反向代理:部署在网站中心机房,当用户请求到达中心机房后,首先访问反向代理服务器,如果反向代理服务器上缓存着用户的请求资源,直接返回给用户;

技术分享

7. 使用分布式文件和数据库系统----提升文件和数据库可用性

技术分享

8. 使用NOSQL和搜索引擎----提高搜索效率,解决一些关系型数据库先天性的效率问题

技术分享

9. 业务拆分----垂直拆分

技术分享

10. 分布式服务

技术分享

 

《大型网站技术架构》-第一章随笔