上下文映射的通信集成模式

防腐层与开放主机服务

目的:降低限界上下文之间的耦合关系

防腐层:(下游限界上下文对 上游限界上下文变化的隔离)

是什么:设计思想“间接”的一种体现

方法:通过引入一个间接的层,就可以

目的:有效隔离限界上下文之间的耦合

设计模式:间接的防腐层还可以扮演“适配器”的角色、“调停者”的角色、“外观”的角色

防腐层往往属于下游限界上下文,用以

目的:隔绝上游限界上下文可能发生的变化。

下游团队终究可能面临不可掌控的上游变化。

在防腐层中定义一个映射上游限界上下文的服务接口,就可以将掌控权控制在下游团队中,

即使上游发生了变化,影响的也仅仅是防腐层中的单一变化点,只要防腐层的接口不变,下游限界上下文的其他实现就不会受到影响。

图例:

无防腐层:

下游上下文可能存在多处上游上下文领域模型的依赖,一旦上游发生变更,就会影响到下游的多处实现

有防腐层:

多处依赖转为对防腐层的依赖

由防腐层指向上游上下文,形成单一依赖

好处:上游变更时,影响的仅仅是防腐层,下游上下文自身并未受到影响。

防腐层对遗留系统治理:

将遗留系统视为一个整体的限界上下文,然后为调用它的下游上下文建立防腐层

在防腐层内:

从调用者角度思考需要公开的服务接口,并引入领域驱动设计为其提炼出清晰的领域模型,然后再从遗留系统中去寻找对应的实现,慢慢将合适的代码搬移过来,适时对其重构

开放主机服务:(上游限界上下文的承诺)

防腐层是下游限界上下文对抗上游变化的利器

开放主机服务就是上游服务用来吸引更多下游调用者的诱饵

实现:定义公开服务的协议,包括通信的方式、传递消息的格式(协议)。同时,也可视为是一种承诺保证开放的服务不会轻易做出变化

目的:降低上游与下游限界上下文之间的依赖

发布/订阅事件:

事件(消息 解耦):

适用范围:异步非实时的业务场景

优点:

1 解耦

2 非阻塞特性也使得整个架构具有更强的响应能力

发布了84 篇原创文章 · 获赞 6 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/csdn_9527666/article/details/105282693