我们先讨论一下为什么要拆分? 一般需要拆分的系统有几种: 1)烟囱系统(单体系统) 2)多个业务耦合在一起的复杂系统 3)过程编程为主的业务系统 系统建设发展的最终目的是要为企业降本增效,所以企业需要的是可扩展、可维护的系统架构,这些系统都有一个共同的特点就是随着业务发展系统难以维护、难以扩展、难以快速响应需求等,所以需要更合理的架构,更合理的架构是什么? DDD与微服务就可以大展身手了,拆分就是核心,那三种系统的具体弊端就不赘述了,但是拆分的最大好处就是可以将系统实现成低耦合、高内聚的系统架构,低耦合、高内聚的优势就是利于扩展,无论是需求响应、系统可用性、系统性能等哪个角度都可以轻松满足。
那么拆分又该按照什么维度去进行呢? 进行拆分应该按照以下两个领域来进行。 1、业务领域,主要是确定不同的领域模型,这个拆分主要是垂直的。 2、架构领域,主要是具体的系统实现,这个拆分分为垂直、水平两种。 业务领域主要采用DDD来实现,电商典型的有用户、商品、交易、物流、售后领域。 架构领域也就是系统拆分主要由微服务架构来实现,例如用户系统拆分为注册系统、登录系统、查询系统等。
系统拆分按照资源分类 1、应用拆分 2、数据拆分 3、部署拆分
系统拆分光进行应用的拆分是不彻底的作用不明显,所以数据存储也要进行拆分,这两项都进行了,但是部署如果不拆分也不完整,必须将系统按1实例1虚拟机来拆分部署。
系统拆分按照架构分类 1、垂直拆分,按照业务功能拆分,这个最不好把握,DDD可以起到。 2、水平拆分,水平好理解按照层次,这个一般大家都接触的比较多,三层架构、四层架构。 垂直拆分我们一般遵循的规则大致有一下几种: 1)核心业务原子拆分 2)高请求、高并发业务原子拆分 3)低请求、低并发业务聚合拆分
系统拆分从资源角度分为:应用拆分和数据库拆分。
从采用的先后顺序可分为:水平扩展、垂直拆分、业务拆分、水平拆分。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。