DDD是什么:DDD领域驱动设计是一种设计思想,架构方面他可以指导微服务业务模型的落地,通过领域驱动设计方法定义这种领域模型,从而去确定业务和应用边界,保证业务模型和代码模型的一致性,去指导微服务的设计。DDD的分层架构从上到下为用户接口层、应用层、领域层、基础层。用户层是最外面的一层,与外部进行交互,处理来自外部的web请求、rpc请求、mq消息等。应用层位于领域层之上,领域层包括多个聚合,所以它可以协调多个聚合服务完成服务的编排,协调完成业务操作。领域层是实现业务的核心逻辑,主要体现领域模型的业务能力,它用来表达业务概念、业务状态和业务规则。基础层它的作用就是为其它各层提供通用的技术和基础服务
如何利用DDD对微服务进行划分:用DDD的术语来说,首先是进行战略设计战略设计是让我们从业务视角出发,建立业务领域模型,划分领域边界,建立通用语言、识别限界上下文的过程。
如何实现战略设计,就是通过事件风暴,采用用例分析或场景分析拆解业务,建立领域模型,梳理领域对象之间的关系;
而事件风暴过程必定会产生各种实体、命令、事件等领域对象,我们将这些领域对象归类形成聚合、同时划分限界上下文,建立领域模型,这是一个从发散到收敛的过程;
然后进行战术设计 战术设计从技术视角出发,侧重于领域模型的技术实现,完成软件开发和落地,包括:聚合根、实体、值对象、领域服务、应用服务和资源库等代码逻辑的设计和实现