大型网站架构技术-演化

特点

  • 高并发、大流量
  • 高可用
  • 海量数据
  • 用户分布广泛、网络情况复杂
  • 安全环境恶劣:易受攻击
  • 需求变化快、发布频繁:为了快速适应市场
  • 渐进式发展:逐渐进步发展

发展历程

初始阶段

应用程序、数据库、文件等所有资源都在一台服务器上。一般是在一台廉价的服务器上采用LAMP这种免费资源。

应用服务和数据服务分离

采用三台服务器分别承担自己的角色。

使用缓存改善网站的性能

二八定律:80%的业务访问集中在20%的数据上,为了减少数据库的访问压力,可以将一些数据放到缓存服务器上,这样可以提高整个网站的数据访问速度。
一般分为两种:

  • 缓存在应用服务器上的本地缓存:访问速度快,但缓存的数据有限;
  • 缓存在专门的分布式缓存服务器上的远程缓存:可以采用分布式缓存。

    采用应用服务器改善网站并发处理能力

    当应用服务器处理不了较多的并发请求时,可以增加一台服务器分担原有的服务器的访问,在前面加一个负载均衡服务器。

    数据库读写分离

    虽然采用了缓存,但有一些读操作和一部分写操作还是会落到数据库上。一般采用主从备份的数据库,写操作可以在主数据库中进行,读操作在从数据库中读取。

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

    加速用户的访问。基本原理都是缓存,CDN是部署在网络提供商的机房,反向代理部署在网站的中心机房。对于反向代理,用户首先访问的是反向代理服务器,如果反向代理服务器中缓存着资源,就直接返回给用户。

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

    持续增长的业务,单一的服务器满足不了要求的时候,一头牛拉不动的时候,不要企图换一头更厉害的牛,而是考虑再加一头牛一起拉。

    使用NoSQL和搜索引擎

    网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,需要采用一些非关系数据库技术和非数据库查询技术如搜索引擎。

    业务拆分

    分而治之

    分布式服务