大型网站技术架构:核心原理与案例分析(读书笔记)

一、大型网站特点:

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、分布式服务:随着业务拆分越来越小,系统越来越复杂,所用应用需要和所有数据服务连接,这将导致数据库连接资源不足,拒绝服务。由于很多应用都有一些公共业务,比如商品管理。我们将这些公共服务再提取出来,独立部署,并且由这些可复用业务来连接数据库。这样就大大减少了数据库连接,使得服务层次更加简洁清晰。这大概就是一套服务器应用的终极版本了吧,亮一张图


大型网站技术架构:核心原理与案例分析(读书笔记)_第1张图片

11、将自己的服务提供给别人,当成一种基础资源,这就是云服务。常见的有一些计算服务和存储服务。

你可能感兴趣的:(大型网站技术架构:核心原理与案例分析(读书笔记))