一、大型网站特点:
1、高并发,大流量
2、不间断服务
3、海量数据
4、用户广,网络负责
5、安全环境恶劣
6、更新快
7、渐进式发展:都是由小到大
二、发展历程
1、初级:单服务器,应用服务、文件服务和数据库服务都放在同一台服务器中
2、应用与数据分离:
(1)应用服务:业务逻辑多,要求CPU强大
(2)文件服务:存储量大,要求硬盘大
(3)数据库服务:要求快速检索和缓存,要求大硬盘和大缓存
3、使用缓存提升性能:
(1)二八定律:80%的访问集中在20%的数据,缓存这部分数据,可以大大降低数据库访问压力,直接提升读数据库的读性能,间接提升写性能
(2)缓存分级:本地缓存访问更快,远程分布式缓存则不限容量
4、使用应用服务器集群,提升系统并发处理能力
(1)通过增减应用服务器实现系统的可伸缩性
(2)使用负载均衡调度服务器,实现请求分发。六种常用的web负载均衡技术
5、数据库的读写分离机制,进一步降低数据库负载,如:MySql实现主从热备和读写分离
(1)数据库的主从热备功能,一台数据库服务器的数据更新同步到其它数据库服务器
(2)读写分离:写数据时访问主数据库,主数据库将更新同步到从数据库。读数据时,访问从数据库。当然,为了便于应用服务器使用,通常会把这部分逻辑独立成模块,对外界提供统一接口。
6、使用反向代理和CDN,提升网站访问速度:一张图说明CDN网络的原理,无论是反向代理还是CDN,其加速原理都是缓存。这里是有些疑问的,比如一些需要权限的数据,需要用到拦截器处理,拦截器逻辑是部署在应用服务器中,CDN和反向代理根本用不到。据此推断,CDN和反向代理缓存的内容,只能是不需要权限的数据,比如商品信息。关于这一点,后面再深究,一定要确认!
7、分布式文件系统和分布式数据库
8、NoSql和搜索引擎服务器:实现更为复杂的数据检索业务,当然,对于不通的数据服务,需要为应用服务器封装成一个统一的数据服务模块。
9、业务拆分:将一个产品拆分成多个产品,分别开发、部署,然后相互服务。当然,拆分主要针对应用服务器这一层,数据服务还是采用同一套。
10、分布式服务:随着业务拆分越来越小,系统越来越复杂,所用应用需要和所有数据服务连接,这将导致数据库连接资源不足,拒绝服务。由于很多应用都有一些公共业务,比如商品管理。我们将这些公共服务再提取出来,独立部署,并且由这些可复用业务来连接数据库。这样就大大减少了数据库连接,使得服务层次更加简洁清晰。这大概就是一套服务器应用的终极版本了吧,亮一张图
11、将自己的服务提供给别人,当成一种基础资源,这就是云服务。常见的有一些计算服务和存储服务。