微服务设计中的上下文映射与关系模式
1. 上下文映射的重要性
在企业中,有界上下文有助于将业务逻辑封装在服务边界内,并定义服务接口。然而,当企业中有界上下文的数量增加时,理清它们之间的连接关系就变得十分困难。上下文映射则可以帮助可视化有界上下文之间的关系。
例如,根据康威定律,设计系统的组织所产生的设计结构会复制该组织的沟通结构。这意味着不同团队负责不同的有界上下文,团队内部沟通可能良好,但团队之间的沟通可能不足,导致有界上下文的设计决策无法正确传播。而上下文映射能帮助每个团队跟踪其所依赖的有界上下文的变化。
2. 上下文映射的表示方法
Vaughn Vernon 提出了多种表达上下文映射的方法,较简单的是绘制图表来展示两个或多个现有有界上下文之间的映射关系。以下是常见的有界上下文关系示例:
| 上游有界上下文 | 下游有界上下文 | 通信方式 |
| — | — | — |
| 订单处理 | 计费 | 事件驱动 |
| 计费 | 供应商管理 | 事件驱动 |
| 库存 | 订单处理 | 同步通信 |
在订单处理和计费有界上下文的关系中,订单处理是上游上下文,计费是下游上下文。上游上下文对下游上下文有更多控制权,即上游上下文定义了两个上下文之间传递的领域模型,下游上下文需关注上游上下文的变化。
3. 有界上下文的领域模型差异
以订单处理和库存有界上下文为例,同一领域对象在不同有界上下文中可能有不同定义。订单实体在订单处理有界上下文中包含订单 ID、客户 ID、订单项、送货地址和付款选项等属性,而在库存有界上下文中仅包含订单 ID 和订单项。每个
超级会员免费看
订阅专栏 解锁全文

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



