开发者社区> 问答> 正文

简述系统的拆分原则

简述系统的拆分原则

展开
收起
huc_逆天 2021-01-11 11:43:23 1742 0
2 条回答
写回答
取消 提交回答
  • 我们先讨论一下为什么要拆分? 一般需要拆分的系统有几种: 1)烟囱系统(单体系统) 2)多个业务耦合在一起的复杂系统 3)过程编程为主的业务系统 系统建设发展的最终目的是要为企业降本增效,所以企业需要的是可扩展、可维护的系统架构,这些系统都有一个共同的特点就是随着业务发展系统难以维护、难以扩展、难以快速响应需求等,所以需要更合理的架构,更合理的架构是什么? DDD与微服务就可以大展身手了,拆分就是核心,那三种系统的具体弊端就不赘述了,但是拆分的最大好处就是可以将系统实现成低耦合、高内聚的系统架构,低耦合、高内聚的优势就是利于扩展,无论是需求响应、系统可用性、系统性能等哪个角度都可以轻松满足。 拆分图一.png

    那么拆分又该按照什么维度去进行呢? 进行拆分应该按照以下两个领域来进行。 1、业务领域,主要是确定不同的领域模型,这个拆分主要是垂直的。 2、架构领域,主要是具体的系统实现,这个拆分分为垂直、水平两种。 业务领域主要采用DDD来实现,电商典型的有用户、商品、交易、物流、售后领域。 架构领域也就是系统拆分主要由微服务架构来实现,例如用户系统拆分为注册系统、登录系统、查询系统等。

    系统拆分按照资源分类 1、应用拆分 2、数据拆分 3、部署拆分

    系统拆分光进行应用的拆分是不彻底的作用不明显,所以数据存储也要进行拆分,这两项都进行了,但是部署如果不拆分也不完整,必须将系统按1实例1虚拟机来拆分部署。 拆分图二.png

    系统拆分按照架构分类 1、垂直拆分,按照业务功能拆分,这个最不好把握,DDD可以起到。 2、水平拆分,水平好理解按照层次,这个一般大家都接触的比较多,三层架构、四层架构。 垂直拆分我们一般遵循的规则大致有一下几种: 1)核心业务原子拆分 2)高请求、高并发业务原子拆分 3)低请求、低并发业务聚合拆分 拆分图三.png

    2021-01-12 19:12:35
    赞同 展开评论 打赏
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    系统拆分从资源角度分为:应用拆分和数据库拆分。

    从采用的先后顺序可分为:水平扩展、垂直拆分、业务拆分、水平拆分。

    2021-01-11 11:43:46
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
为并行图数据处理提供高层抽象/语言 立即下载
极简微服务模式—消除微服务复杂度的最佳实践 立即下载
重新出发:阿里云数据库开源整体策略 立即下载