架构模式


架构模式

分层

分为应用层,服务层,数据层,后续继续分层
reference:https://zhuanlan.zhihu.com/p/40353581

为什么要分层?

  1. 分层的设计可以简化系统设计,让不同的人专注做某一层次的事情
  2. 分层之后可以做到很高的复用
  3. 分层架构可以让我们更容易做横向扩展

分层的缺点

  1. 增加代码复杂度
  2. 如果我们把每个层次独立部署,层次间通过网络来交互,那么多层的架构在性能上会有损耗。这也是为什么服务化架构性能要比单体架构略差的原因
    reference:https://zhuanlan.zhihu.com/p/196733107

分层的原则

  1. 机器为本,用户至上

    分层的依据

  • 基于关注点为不同的调用目的划分层次
  • 面对变化
  • 保证同一层的组件处于同一个抽象层次

分割

将不同的功能和服务分割开飞,形成高内聚低耦合的模块单元。一是有助于软件的开发和维护,而是便于不同模块的分布式部署,提高网站并发处理能力和扩展能力

分布式

将不同模块部署在不同的服务器上,通过远程调用协调工作。意味着更多的计算机完成同样的功能,计算机越多,resource就越多,能够处理的并发访问和数据量就越大

分布式应用和微服务

分布式静态资源

分布式数据和存储

分布式计算

集群

多台服务器部署相同的应用构成一个集群,通过负载均衡对外服务,当更多用户访问的时候,只需要向集群中增加服务器即可

缓存

CDN

反向代理

本地缓存

分布式缓存

异步

在单一服务器可以通过多线程共享队列的方式实现异步,处在业务操作前面的线程将输出写入到队列,后面的线程从队列中读取数据进行处理。分布式系统中,多个服务器集群可以通过分布式消息队列实现异步,分布式队列可以看做内存队列的分布式部署
优点:

  1. 提高系统的可用性
  2. 加快网站响应速度
  3. 消除并发访问高峰

冗余

数据库定期备份,存档保存。实现冷备份以外,为保证在线业务高可用,还需要对数据库进行主从分离,实时同步实现热备份

自动化


文章作者: 彭峰
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彭峰 !
  目录