大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据。
1 初始阶段的网站架构
大型网站都是从小网站发展而来,也是从小型网站架构逐步演化而来。
此时应用程序、数据库、文件等所有资源都在一台服务器上。
2 应用服务和数据服务分离
随着网站的发展,越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时需要将应用和数据分离。
分离后整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器。
- 应用服务器需要处理大量业务逻辑,因此需要更快更强大的 CPU
- 数据库服务器需要快速的磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存
- 文件服务器需要存储大量用户上传的文件,因此需要更大的硬盘
应用数据分离后,不同特性的服务器承担不同的服务角色,网站的并发能力和数据存储空间得到了很大改善。
3 使用缓存改善网站性能
网站访问特点和现实世界的财富分配一样遵循二八定律:80% 的业务访问集中在 20% 的数据上。既然大部分的业务访问集中在一小部分数据上,那么可以把这一小部分数据缓存在内存中,减小数据库访问压力,提高整个网站的访问速度。
网站使用的缓存可分为两种
- 本地缓存:访问速度快,但受应用服务器内存限制,缓存数量有限
- 远程分布式缓存:可使用集群方式部署,使用大内存的服务器作为专门的缓存服务器
4 使用应用服务器集群改善网站的并发处理能力
使用集群是解决网站高并发、海