网站架构演变

1. 初始架构

初始架构

  • 特点:

    • 应用程序,文件服务,数据库,都在一台服务器里面。
    • 优点:简单,易于维护。
    • 缺点:不易于扩展,不易于维护,并发与存储空间受到局限。

2. 应用服务和数据服务分离

应用服务和数据服务分离

  • 特点:

    • 应用程序和数据库分离,应用程序和文件服务分离
    • 应用程序服务器: 比较多应用业务逻辑,会有比较好 cpu。
    • 文件服务器: 需要大量的磁盘空间。
    • 数据库服务器: 需要磁盘检索,需要比较好的磁盘和内存。
    • 优点:易于扩展,易于维护,对并发能力有改善,存储空间改善。
    • 缺点:需要多台服务器,成本高,后期访问量增加大,数据库服务压力倍增。

3. 使用缓存来改善网站性能

使用缓存来改善网站性能

  • 特点:

    • 使用缓存来改善网站性能。
    • 缓存: 一种在应用服务器中本地缓存,另外一种远程分布式缓存,比如 redis。
    • 优点:提高网站性能,减少数据库压力。
    • 缺点:缓存数据和数据库数据不一致,需要考虑缓存数据和数据库数据一致性问题,应用服务器连接遇到瓶颈。

4. 使用集群增加网站并发能力

使用集群增加网站并发能力

  • 特点:

    • 使用集群增加网站并发能力。
    • 负载均衡: 一台服务器接收到请求,然后分发给其他服务器。
    • 优点:提高网站并发能力,提高网站性能,可以改善应用服务器遇到高并发压力。
    • 缺点:需要多台服务器,成本高,后期访问量增加大,数据库服务压力倍增,数据后期会遇到瓶颈。

5. 使用数据库读写分离

使用数据库读写分离

  • 特点:

    • 使用数据库读写分离。
    • 读写分离: 一台服务器负责写操作,其他服务器负责读操作。
    • 主从复制: 一台服务器负责写操作,其他服务器负责读操作,写操作会同步到其他服务器。
    • 主从热备: 一台服务器负责写操作,其他服务器负责读操作,写操作会同步到其他服务器,其他服务器可以作为热备。
    • 优点:提高网站并发能力,提高网站性能,可以改善数据库服务器遇到高并发压力。
    • 缺点:需要多台服务器,成本高,后期访问量增加大,数据库服务压力倍增,数据后期会遇到瓶颈,同时网站根据不同地区访问会有不同的快慢。

6. 网站加速

网站加速

  • 特点:

    • 使用 CDN 加速网站,尽早将网站内容反映给用户 。
    • CDN: 内容分发网络,是一种将内容分发到不同地区的网络。
    • 优点:提高网站性能,提高网站并发能力,可以改善应用服务器遇到高并发压力,可以改善数据库服务器遇到高并发压力。
    • 缺点:需要多台服务器,成本高,后期访问量增加大,数据库服务压力倍增,数据后期会遇到瓶颈。

7. 分布式系统

分布式系统

  • 特点:

    • 使用分布式系统。
    • 分布式系统: 一台服务器负责写操作,其他服务器负责读操作,写操作会同步到其他服务器,其他服务器可以作为热备,同时使用 CDN 加速网站。
    • 数据库:业务分库,分表,分区,分布式数据库。
    • 优点:提高网站并发能力,提高网站性能,可以改善应用服务器遇到高并发压力,可以改善数据库服务器遇到高并发压力,可以改善网站根据不同地区访问会有不同的快慢。
    • 缺点:需要多台服务器,成本高,后期访问量增加大,数据库服务压力倍增,数据后期会遇到瓶颈,后面可以考虑使用非关系型数据库。

8. 搜索引擎来助力

搜索引擎来助力

  • 特点:

    • 使用搜索引擎来助力。
    • 搜索引擎: 搜索引擎是一种将网站内容进行索引,然后提供搜索服务的系统。
    • NoSQL: 非关系型数据库,比如 redis,mongodb。
    • 优点: 提高网站并发能力,提高网站性能,可以改善应用服务器遇到高并发压力,可以改善数据库服务器遇到高并发压力,可以改善网站根据不同地区访问会有不同的快慢,可以提高网站搜索能力。
    • 缺点: 需要多台服务器,成本高,后期访问量增加大,架构也遇到瓶颈。

9. 业务分而治之

业务分而治之

  • 特点:

    • 使用业务分而治之,拆分业务,每个业务分成不同产品线。
    • 业务分而治之: 一种将业务进行分而治之,然后分布到不同的服务器上。
    • 消息队列: 一种将业务进行分而治之,然后分布到不同的服务器上,然后使用消息队列进行通信。
    • 优点:提高网站并发能力,提高网站性能,可以改善应用服务器遇到高并发压力,可以改善数据库服务器遇到高并发压力,可以改善网站根据不同地区访问会有不同的快慢,可以提高网站搜索能力。
    • 缺点:需要多台服务器,成本高,后期访问量增加大,访问数据库连接会有瓶颈。

10. 分布式服务

分布式服务

  • 特点:

    • 使用分布式服务,一些共用服务要提取出来,其他系统来调用。
    • 分布式服务: 一种将业务进行分而治之,然后分布到不同的服务器上,然后使用消息队列进行通信,然后使用分布式服务进行通信。
    • 优点:提高网站并发能力,提高网站性能,可以改善应用服务器遇到高并发压力,可以改善数据库服务器遇到高并发压力,可以改善网站根据不同地区访问会有不同的快慢,可以提高网站搜索能力。
    • 缺点:需要多台服务器,成本高,后期访问量增加大,其实缺点也是一种平衡。

11. 云计算

  • 特点:

    • 使用云计算,将服务器部署到云上。
    • 云计算: 一种将服务器部署到云上,然后使用云计算服务。
    • 优点:提高网站并发能力,提高网站性能,可以改善应用服务器遇到高并发压力,可以改善数据库服务器遇到高并发压力,可以改善网站根据不同地区访问会有不同的快慢,可以提高网站搜索能力,资源的伸缩性增强。
    • 缺点: 云计算服务成本高,后期访问量增加大,成本会更高,其实缺点也是一种平衡。

参考资料