zoukankan      html  css  js  c++  java
  • 架构分层

    一、高可用架构为什么需要分层
     
    1. ALLIN ONE 架构的缺点
        – 整个架构只有一个模块
            • 数据部分、逻辑部分、接入部分、展示部分等
        – 架构存在问题 
            • 耦合严重
            • 职责不分明
            • 模块庞大、臃肿
            • 开发成本高、效率低下
            • 运维成本高
            • 组件间相互影响,一旦一个组件有问题,整个服务都受影响 
            • 扩展性差
            • 性能极限差
            • 牵一发而动全身!!!!   
     
    2. 服务高可用分层设计的好处
        – 模块耦合性低
        – 模块职责分明
            • 数据层、逻辑层、接入层、展示层等等
        – 模块间不再相互影响
        – 模块独立扩展
        – 系统整体性能高
     
     
    二、高可用架构分层设计原则
        – 数据服务和逻辑服务分离 
            • 数据存储
            • 业务逻辑
        – 逻辑服务和接入服务分离 
            • 业务逻辑
            • 接入层
        – 接入服务和展示服务分离 
            • 接入层
            • 数据展示
        – 分层服务功能单一 
            • 数据
            • 逻辑 
            • 接入
            • 展示 
            • ……
        – 分层间低耦合 
            • 接口交互
        – 分层内高内聚
            • 功能聚焦单一
        – 分层适中
            • 层次过多
                – 请求交互路径长
                – 请求响应延迟高
                – 层次多,运维成本高
                – 定位问题涉及层次多,定位复杂多增加,定位时间长
            • 层次过少
                – 每个层次功能不单一,耦合性高 
                – 模块内组件间相互影响高
                – 高可用无法保证
     
     
    三、高可用架构如何分层
    高可用架构分层
        – 前端架构
            • MVC架构分层
        – 后端架构
            • 按照功能水平划分
                – 四层
                    » 接入层、逻辑层、数据层、数据存储
                    » 接入层、逻辑层、原子服务层、数据存储
                – 五层
                    » 接入层、序列化层(异步消息队列)、逻辑层、数据层、数据存储
            • 按照业务垂直拆分
            
  • 相关阅读:
    淘宝API学习之道:淘宝TOP之API接口接入教程
    hdu 2952 Counting Sheep
    【Java 虚拟机探索之路系列】:JIT编译器
    Android Afinal框架学习(一) FinalDb 数据库操作
    class、interface、struct的差别
    13个Cat命令管理文件实例汇总
    Linux df 命令用法示例
    九个uname命令获取Linux系统详情的实例
    Linux中查看进程的多线程
    精通Linux的“kill”命令
  • 原文地址:https://www.cnblogs.com/756623607-zhang/p/7503150.html
Copyright © 2011-2022 走看看