微服务架构中的业务逻辑设计
1、使用聚合设计领域模型
1.1 为什么要使用聚合
- 聚合拥有明确的边界
- 聚合将领域分为块,单独的每一块更容易理解
- 加载、更新、删除操作作用域整个聚合,而不是部分聚合
1.2 聚合的规则
- 只引用聚合根
- 聚合间的引用必须使用主键
- 一个事务中,只能创建或更新一个聚合
(?原因一:如果一个事务更新了多个聚合,是否意味着这两个聚合具有强关联性,他们应该划分为同一个聚合
原因二:如果同时被更新的两个聚合在不同的微服务里,则应该属于不同的事务,需要通过事务补偿来保证数据的一致性)
2、 领域事件
领域事件触发了聚合状态的变化
2.1 如何识别领域事件
- 事件风暴
2.2 领域事件发布
- 通过服务(service)调用聚合根的方法,然后发布事件
网友评论