阅读《大型网站技术架构》

107 阅读4分钟

阅读《大型网站技术架构》

  • 架构演化:

    1. 初始:

      用户少

微信图片_20240729113653.jpg

  1. 应用服务和数据服务分离:

    用户多

微信图片_20240729113709.jpg

  1. 使用缓存改善网站性能:

    网站访问特点:二八定律:80%的业务访问集中在20%的数据上

    所以将这小部分数据进行缓存,减少数据库的压力

    网站使用的缓存主要就两种:应用服务器的本地缓存和分布式缓存服务器(集群)

    使用集群是解决高并发、海量数据问题的常用手段

    主要后者,前者访问速度更快,但与应用程序共用内存,明显受限

微信图片_20240729113715.jpg

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

    使用缓存后,数据访问压力减缓,单一应用服务器成为访问瓶颈、

    负载均衡服务器 + 集群应用服务器

微信图片_20240729113721.jpg)

  1. 数据库读写分离:

    通过配置两台数据库主从关系,将一台数据库服务器的数据同步更新到另一台服务器上

    实现数据库读写分离,改善数据库负载压力

微信图片_20240729113732.jpg

  1. 使用反向代理和CDN加速网站响应:

    加速网站访问速度:CDN和反向代理,基本原理都是缓存

    目的都是尽早返回数据给用户

    CDN部署在网络提供商的机房,反向代理部署在网站的中心机房

微信图片_20240729113724.jpg

  1. 使用分布式文件系统和分布式数据库系统:

    将不同业务的数据库部署在不同的物理服务器上

微信图片_20240729113736.jpg

  1. 使用NoSQL和搜索引擎:

微信图片_20240729113738.jpg

  1. 业务拆分:

微信图片_20240729113742.jpg

  1. 分布式服务:

微信图片_20240729113745.jpg

  • 不要企图用技术解决所有问题,改变业务架构(排队机制,分时段销售),控制并发量

  • 缓存是改善软件性能的第一手段:

    1. CDN(内容分发网络):部署在距离终端用户最近的网络服务商,缓存网站的静态资源
    2. 反向代理:属于网站前端架构的一部分,部署在网站前端,缓存网站的静态资源
    3. 本地缓存:应用服务器本地缓存热点数据
    4. 分布式缓存:将大量数据缓存在一个专门的分布式集群中,应用程序通过网络通信访问缓存数据
  • 使用缓存的两个前提条件:

    1. 数据访问热点不均衡
    2. 数据不会很快过期

阅读《大型网站技术架构》

  • 架构演化:

    1. 初始:

      用户少

微信图片_20240729113653.jpg

  1. 应用服务和数据服务分离:

    用户多

微信图片_20240729113709.jpg

  1. 使用缓存改善网站性能:

    网站访问特点:二八定律:80%的业务访问集中在20%的数据上

    所以将这小部分数据进行缓存,减少数据库的压力

    网站使用的缓存主要就两种:应用服务器的本地缓存和分布式缓存服务器(集群)

    使用集群是解决高并发、海量数据问题的常用手段

    主要后者,前者访问速度更快,但与应用程序共用内存,明显受限

微信图片_20240729113715.jpg

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

    使用缓存后,数据访问压力减缓,单一应用服务器成为访问瓶颈、

    负载均衡服务器 + 集群应用服务器

微信图片_20240729113721.jpg)

  1. 数据库读写分离:

    通过配置两台数据库主从关系,将一台数据库服务器的数据同步更新到另一台服务器上

    实现数据库读写分离,改善数据库负载压力

微信图片_20240729113732.jpg

  1. 使用反向代理和CDN加速网站响应:

    加速网站访问速度:CDN和反向代理,基本原理都是缓存

    目的都是尽早返回数据给用户

    CDN部署在网络提供商的机房,反向代理部署在网站的中心机房

微信图片_20240729113724.jpg

  1. 使用分布式文件系统和分布式数据库系统:

    将不同业务的数据库部署在不同的物理服务器上

微信图片_20240729113736.jpg

  1. 使用NoSQL和搜索引擎:

微信图片_20240729113738.jpg

  1. 业务拆分:

微信图片_20240729113742.jpg

  1. 分布式服务:

微信图片_20240729113745.jpg

  • 不要企图用技术解决所有问题,改变业务架构(排队机制,分时段销售),控制并发量

  • 缓存是改善软件性能的第一手段:

      • 缓存是改善软件性能的第一手段:
    1. CDN(内容分发网络):部署在距离终端用户最近的网络服务商,缓存网站的静态资源

    2. 反向代理:属于网站前端架构的一部分,部署在网站前端,缓存网站的静态资源

    3. 本地缓存:应用服务器本地缓存热点数据

    4. 分布式缓存:将大量数据缓存在一个专门的分布式集群中,应用程序通过网络通信访问缓存数据

  • 使用缓存的两个前提条件:

    1. 数据访问热点不均衡
    2. 数据不会很快过期