架构分层

一、高可用架构为什么需要分层
 
1. ALLIN ONE 架构的缺点
    – 整个架构只有一个模块
        • 数据部分、逻辑部分、接入部分、展示部分等
    – 架构存在问题 
        • 耦合严重
        • 职责不分明
        • 模块庞大、臃肿
        • 开发成本高、效率低下
        • 运维成本高
        • 组件间相互影响,一旦一个组件有问题,整个服务都受影响 
        • 扩展性差
        • 性能极限差
        • 牵一发而动全身!!!!   
 
2. 服务高可用分层设计的好处
    – 模块耦合性低
    – 模块职责分明
        • 数据层、逻辑层、接入层、展示层等等
    – 模块间不再相互影响
    – 模块独立扩展
    – 系统整体性能高
 
 
二、高可用架构分层设计原则
    – 数据服务和逻辑服务分离 
        • 数据存储
        • 业务逻辑
    – 逻辑服务和接入服务分离 
        • 业务逻辑
        • 接入层
    – 接入服务和展示服务分离 
        • 接入层
        • 数据展示
    – 分层服务功能单一 
        • 数据
        • 逻辑 
        • 接入
        • 展示 
        • ……
    – 分层间低耦合 
        • 接口交互
    – 分层内高内聚
        • 功能聚焦单一
    – 分层适中
        • 层次过多
            – 请求交互路径长
            – 请求响应延迟高
            – 层次多,运维成本高
            – 定位问题涉及层次多,定位复杂多增加,定位时间长
        • 层次过少
            – 每个层次功能不单一,耦合性高 
            – 模块内组件间相互影响高
            – 高可用无法保证
 
 
三、高可用架构如何分层
高可用架构分层
    – 前端架构
        • MVC架构分层
    – 后端架构
        • 按照功能水平划分
            – 四层
                » 接入层、逻辑层、数据层、数据存储
                » 接入层、逻辑层、原子服务层、数据存储
            – 五层
                » 接入层、序列化层(异步消息队列)、逻辑层、数据层、数据存储
        • 按照业务垂直拆分
        
原文地址:https://www.cnblogs.com/756623607-zhang/p/7503150.html