【问题标题】:Sharing domain model classes (Aggregates) across two microservices跨两个微服务共享域模型类(聚合)
【发布时间】:2018-02-12 09:34:49
【问题描述】:

基于我有限的知识,微服务可以设计在有界上下文级别或聚合级别。

如果微服务是在聚合级别创建的,它们可能需要引用在其他微服务中创建的聚合(因为它们共享相同的有界上下文)。

我们是否应该在每个微服务中多次创建相同的聚合(如果需要)?或者永远不会存在需要将一个聚合用于另一个聚合的情况?

【问题讨论】:

  • 只是好奇,当你说围绕聚合设计微服务时,这是你从你所知道的或者你在某处看到的推荐中推断出来的吗?即使对于微服务来说,这似乎也是一个很小的规模。
  • @guilaume31,我并不是说“总是”围绕聚合设计微服务。它是选项之一(除了子域/有界上下文)。
  • 我从来没有说过你说“总是”:) Much of advice 似乎指向 BC 大小的微服务或更大,而不是聚合大小,因此我的问题。跨度>

标签: domain-driven-design microservices


【解决方案1】:

在对聚合建模时,规则是一个聚合只能通过其标识来引用任何其他聚合。一个聚合不能保存对任何其他聚合的对象引用,否则会破坏一致性边界。

因此,如果您根据 DDD 规则对系统进行建模,那么您的微服务将被明确隔离,您将不会遇到任何问题。

【讨论】:

  • 谢谢扬!我同意这一点。我发现很多 DDD 从业者都提出了同样的建议。
猜你喜欢
  • 2019-11-19
  • 2018-10-18
  • 2015-06-10
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 2018-11-16
  • 2022-08-08
  • 1970-01-01
相关资源
最近更新 更多