我正在考虑本文 ( https://learn.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/ddd-oriented-microservice ) 中描述的面向 DDD 的微服务架构。但我对数据访问和实体存有疑问。
对于我来说,将域实体和数据访问放入一个公共(public)项目甚至一个 block 中是否有意义?因为我认为我会为每个服务多次重写相同的数据访问。
最佳答案
TL;DR:没有。
微服务应该使用 API 相互通信。
两个原因:
- 微服务作为聚合根定义了清晰的事务边界。重用代码意味着可能会采取捷径来避开前置条件、后置条件和不变检查。
- 其次,代码共享迫使您将对模型的更改与所有依赖的微服务集成,这可能违背了采用微服务的目的。拥有不同的 API 版本将帮助您逐步进行管理。
关于domain-driven-design - 在面向 DDD 的微服务中,基础设施和实体可以重用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46746885/