DDD 分层架构包含用户接口层、应用层、领域层和基础层。
通过这些层次划分,我们可以明确微服务各层的职能,划定各领域对象的边界,确定各领域对象的协作方式。这种架构既体现了微服务设计和架构演进的需求,又很好地融入了领域模型的概念。

概念

领域事件总体架构

微服务架构
领域事件:发生后通常会导致进一步的业务操作,这种事件被称为领域事件

  • 发布后,发布方不需要关心后续处理,实现领域解耦
  • 只能保证最终一致性
  • 需要引入分布式事务
  • 领域事件应该是概括性的,生产者和消费者无直接关联的

DDD分层架构

DDD架构演进
目前的四层架构
  • 用户接口层
    接口用户的指令 & 向用户展示信息
  • 应用层
    应用层并不是业务层,而是流程相关动作,协调服务编排和组合,类似controller
  • 领域层
    领域层的作用是实现企业核心业务逻辑,包含聚合根、实体、值对象、领域服务等领域模型中的领域对象。
  • 基础层
    基础层是贯穿所有层的,它的作用就是为其它各层提供通用的技术和基础服务,包括第三方 工具、驱动、消息中间件、网关、文件、缓存以及数据库等

分层原则

  • 每层只能与位于其下方的层发生耦合。

微服务架构的演进

以聚合为单位重组拆分

微服务内服务的演进

共同的服务抽象下沉

总结

DDD 分层架构包含用户接口层、应用层、领域层和基础层。
通过这些层次划分,我们可以明确微服务各层的职能,划定各领域对象的边界,确定各领域对象的协作方式。这种架构既体现了微服务设计和架构演进的需求,又很好地融入了领域模型的概念


欢迎大家关注公众号一起交流