DDD分层架构

DDD分层架构、整洁架构、六边形架构都是以领域模型为核心,实行分层架构。内部核心业务逻辑与外部应用、资源隔离并解耦。从而设计出“高内聚、低耦合”的微服务,以实现微服务的架构演进。DDD分层架构使得微服务的架构边界变得清晰。

六边形架构

提到微服务架构,一定会涉及到六边形架构。六边形架构(Hexagonal Architecture),也被称为端口与适配器架构。其将业务逻辑封装在核心内部,与外部基础设施隔离。

ps, 画图工具不直接支持六边形图形,用圆形替代。

DDD分层架构

DDD分层架构

DDD分层

用户接口层

用户接口层,完成后端微服务与前端不同用户的接口和数据适配

用户接口层主要由facade接口、DTO以及DO数据的组装和转换。

应用层

应用层,协调领域层内多个聚合,面向用例和业务流程以完成服务的组合和编排。很薄的一层。

微服务之间通过应用层完成互相调用。

应用层主要有应用服务、事件订阅和发布。

领域层

领域层,实现领域模型的核心业务逻辑,体现领域模型的业务能力。

领域模型的业务逻辑主要由实体和领域服务实现。实体采用充血模型实现与其相关的业务功能。领域服务是组合聚合内多个实体,以实现复杂业务逻辑。

基础层

基础层,为其他层提供通用的技术和基础服务。基础层实现与各种技术的对接,包括数据库、缓存、消息中心和第三方服务等。

DDD分层代码模型

--root
    --adapter: 适配器层
       --rpc: RPC层,Domain层中port中依赖的外部的接口实现,调用远程RPC接口
       --mq: 消息队列sender模块
       --translate: 将外部数据结构映射为内部的DTO/model
       --task: 任务,主要是调度任务的适配器
       --controller: springMVC提供的controller
    --app: 应用层是组合domain提供的能力,从而实现业务用例
        --cases: 应用服务
    --domain: 领域层
       --service: 领域服务
       --facotry: 工厂,创建复杂对象
       --event: 事件驱动
       --model: 对象和实体
       --translate: 对象实体映射转换
    --infrastructure: 基础设施层
       --repository: 持久化层,包括db模型,sql读写等
       --cache: 缓存读写
       --producer: MQ消息生成,即发送MQ消息。
       --config: 配置信息,例如应用配置、数据库、缓存配置等
       --translate: 将存储层的数据结构DO映射为内部的DTO/model
       --utils: 工具集合
       --do: 存储层数据
    --common: 公共层
       --exception: 自定义异常
       --enums: 枚举类
       --constants: 全局公共常量池
       

参考

《中台架构与实现–基于DDD和微服务》–欧创新
从混乱到优雅:基于DDD的六边形架构的代码翻新指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值