首页 > 代码库 > 读书笔记-01大型网站架构演化-思维导图
读书笔记-01大型网站架构演化-思维导图
1.服务器分离?
随着业务发展,越来越多的用户访问导致网站性能越来越差,越来越多的数据导致存储空间不足,这时候就需要将网站进行分离。
2.使用缓存?
随着用户增多,数据库压力越来越大导致访问延迟想象越来越多,进而影响网站性能和用户体验。而根据2/8法则,80%的业务需求集中在20%的数据上。
3.应用服务器负载均衡?
使用缓存后,单一的应用服务器能够处理的请求连接有限,在网站高峰期,应用服务器成为其瓶颈。
使用集群是解决网站高并发、海量数据的常用手段。
通过负载均衡调度器,可以将来自用户的请求分发到应用服务器集群中,如果有更多的用户,那么就增加集群内服务器的数量。
4.数据库读写分离?
网站在使用缓存后,使得绝大部分数据不需要通过数据库就可以完成,但是仍有一部分读操作(缓存不命中,缓存过期)和全部的写操作需要经过数据库。在网站用户达到一定规模之后,数据由于负载压力过高而成为新的瓶颈。
5.使用反向代理和CDN?
随着业务的发展,用户规模越来越大,由于中国复杂的网络环境,不同区域用户的速度也千差万别。为了减少访问延迟,提供更好的用户体验,留住客户,网站需要加快网站的访问速度,主要手段有使用CDN和反向代理。
使用CDN和使用反向代理都是为了尽快将数据返回给用户,一方面加快用户访问速度,两一方面也可以减轻后端服务器的负载压力。
6.使用分布式系统?
任何单一的服务器都满足不了大型网站持续增长的业务需求。随着业务的发展,必须要使用分布式数据库和分布式文件系统。
7.使用NoSQL和搜索引擎?
随着业务的发展,数据类型越来越多,越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要使用一些非关系型数据库如NoSQL和非数据库查询技术如搜索引擎。
NoSQL和搜索引擎都是源自互联网的技术,对于可伸缩的分布式架构具有良好的支持。应用服务器则通过一个统一的数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。
8.业务拆分?
为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分拆成不同的产品线,交由不同的业务团队负责
9.分布式服务?
随着业务拆分越来越小,存储系统越来越大,应用系统的整体复杂度呈指数上升,部署维护越来越难。由于所有应用要和数据库系统连接,在数万台服务器规模的网站中,这些连接的数目是服务器规模的平方,导致数据库链接资源不足,拒绝服务。
既然每个应用系统都需要执行许多相同的操作,那么可以将这些公用的业务提炼出来,独立部署。由这些客户用的业务系统连接数据库,提供公共服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体操作。
读书笔记-01大型网站架构演化-思维导图