可扩展架构的基本思想和模式

第80篇

极客时间《从0开始学架构》课程笔记。

可扩展的基本思想

拆。
就是将原本大一统的系统拆分成多个规模小的部分,扩展时只修改其中一部分即可,无须整个系统到处都改。
可以减少改动范围,降低改动风险。

3种拆分思路

日常生活中的『拆』是破坏性的,而软件系统的『拆』是建设性的。

  • 面向流程拆分:将整个业务流程拆分为几个阶段,每个阶段作为一部分
  • 面向服务拆分:将系统提供的服务拆分,每个服务作为一部分
  • 面向功能拆分:将系统提供的功能拆分,每个功能作为一部分
  • 范围从大到小,流程大于服务,服务大于功能

拆分举例-学生信息管理系统

  • 面向流程拆分:展示层--》业务层--》数据层--》存储层


    面向流程拆分
  • 面向服务拆分:注册服务、登录服务、信息管理服务、安全设置服务


    面向服务拆分
  • 面向功能拆分:手机号注册、邮箱注册、手机号登录、邮箱登录、课程信息管理、成绩信息管理、修改密码、找回密码


    面向功能拆分

可扩展方式

  • 不同的拆分方式,本质上决定了系统的扩展方式
  • 合理拆分可以实现在架构上强制保证在程序出错时,范围不会太广,影响不会太大

1、面向流程拆分的优势
扩展时大部分情况只需要修改某一层,少部分情况可能修改关联的两层,不会出现所有层都同时要修改

2、面向服务拆分的优势
对某个服务扩展,或者要增加新的服务时,只需要扩展相关服务即可,无须修改所有的服务

3、面向功能拆分的优势
对某个功能扩展,或者要增加新的功能时,只需要扩展相关功能即可,无须修改所有的功能模块

典型可扩展系统架构

  • 面向流程拆分:分层架构
  • 面向服务拆分:SOA、微服务
  • 面向功能拆分:微内核架构

总结

  • 拆,是核心思想
  • 面向流程拆分里的流程不是业务流程,而是数据流程
  • 服务是一组相似功能的集合,一个功能也可以做成独立的服务
  • 每个服务是独立的子系统,有各自独立的数据库,缓存,服务器
  • 架构设计时可以组合使用不同的拆分方式

你可能感兴趣的:(可扩展架构的基本思想和模式)