其他分享
首页 > 其他分享> > DDD(领取驱动设计)系列主题之DDD常用架构模式

DDD(领取驱动设计)系列主题之DDD常用架构模式

作者:互联网

在DDD的项目实践中,我们会使用一些常用的架构模式,来进行系统架构的合理设计。 

以下是DDD常用架构模式:

DDD分层架构

DDD 分层架构包含用户接口层、应用层、领域层和基础层。

整洁架构

整洁架构又名“洋葱架构”。整洁架构的层就像洋葱片一样,它体现了分层的设计思想。在整洁架构里,同心圆代表应用软件的不同部分,从里到外依次是领域模型、领域服务、应用服务和最外围的容易变化的内容,比如用户界面和基础设施。

整洁架构最主要的原则是依赖原则它定义了各层的依赖关系,越往里依赖越低,代码级别越高,越是核心能力。外圆代码依赖只能指向内圆,内圆不需要知道外圆的任何情况。

在洋葱架构中,各层的职能是这样划分的

六边形架构

六边形架构又名“端口适配器架构”。

六边形架构的核心理念是:应用是通过端口与外部进行交互的。

六边形架构将系统分为内六边形和外六边形两层,这两层的职能划分:

DDD分层架构 vs 整洁架构 vs 六边形架构

三种微服务架构模型的对比和分析

 

Event Driven 架构实现原理

介绍一个保险承保业务过程中有关领域事件驱动架构的例子。

一个保单的生成,经历了很多子域、业务状态变更和跨微服务业务数据的传递。这个过程会产生很多的领域事件,这些领域事件促成了保险业务数据、对象在不同的微服务和子域之间的流转和角色转换。

在下面这张图中,列出了几个关键流程,用来说明如何用领域事件驱动设计来驱动承保业务流程

 

 

CQRS(Command Query Responsibility Segregation) 架构

本质上,CQRS也是一种读写分离的机制

两种实现方式:

1. CQ 两端数据库共享, CQ 两端只是在上层代码上分离; 这种做法,带来的好处是可以让我们的代码读写分离,更好维护,且没有 CQ 两端的数据一致性问题,因为是共享一个数据库的。这种架构很实用,既兼顾了数据的强一致性,又能让代码好维护。  

2. CQ两端数据库和上层代码都分离,然后Q的数据由C端同步过来,一般是通过Domain Event进行同步。同步方式有两种,同步或异步,如果需要CQ两端的强一致性,则需要用同步;如果能接受CQ两端数据的最终一致性,则可以使用异步。

 

微服务内领域事件设计模式

 

微服务间领域事件设计模式

领域事件处理包括:事件构建和发布、事件数据持久化、事件总线、消息中间件、事件接收和处理等

 

 

 

标签:架构,领取,适配,领域,整洁,六边形,DDD
来源: https://blog.csdn.net/u011537073/article/details/114190219