微服务设计中的上下文映射与关系模式
1. 上下文映射(Context Map)
在企业中,有界上下文(Bounded Context)有助于将业务逻辑封装在服务边界内,并定义服务接口。然而,当企业中有界上下文的数量增加时,弄清楚它们之间的连接方式可能会变得非常困难。上下文映射(Context Map)可以帮助可视化有界上下文之间的关系。
康威定律(Conway’s Law)也是我们需要构建上下文映射的一个原因。根据康威定律,任何设计系统的组织所产生的设计结构,都会是该组织沟通结构的副本。也就是说,不同的团队会负责不同的有界上下文,团队内部的沟通可能很好,但团队之间的沟通可能不足。这会导致在相应有界上下文上做出的设计决策无法正确传播给其他方。而上下文映射可以帮助每个团队跟踪他们所依赖的有界上下文的变化。
Vaughn Vernon 提出了多种表达上下文映射的方法,较简单的方式是绘制图表来展示两个或多个现有有界上下文之间的映射关系。在图中,我们使用一条线连接两个有界上下文,线的两端分别用 U 或 D 标识,U 表示上游(Upstream),D 表示下游(Downstream)。
例如,在订单处理(Order Processing)有界上下文和计费(Billing)有界上下文的关系中,订单处理是上游上下文,计费是下游上下文。上游上下文对下游上下文有更多的控制权,即上游上下文定义了两个上下文之间传递的领域模型,下游上下文需要了解上游上下文的任何变化。这两个上下文之间的通信通过事件(Eventing)进行,上游有界上下文定义事件的结构,感兴趣的下游有界上下文必须遵循该结构。
同样,计费有界上下文和供应商管理(Supplier Management)有
超级会员免费看
订阅专栏 解锁全文
176万+

被折叠的 条评论
为什么被折叠?



