2

我在这篇文章(https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/ddd-oriented-microservice)中描述的面向DDD的微服务体系结构中思考。但是我对数据访问和实体有疑问。在面向DDD的微服务中,基础架构和实体可以被重用?

对于我来说,将域实体和数据访问放入一个通用项目甚至是块金是否合理?因为我认为我会为每项服务多次重写相同的数据访问权限。

回答

2

无论您使用DDD与否,SOA的四个原则是:

  • 服务有明确的界限
  • 服务是自治的
  • 服务共享模式和契约,而非类
  • 基于策略的服务互操作

其中之一这样做的后果是,服务永远不会分享他们的持久性。

有关于服务边界如何与有界上下文对齐的讨论,但是您可以从简单开始并具有一对一对齐来开始,并且有界上下文也不会以使用契约以外的任何其他方式公开持久性。

3

TL; DR:no。

微服务应该使用API​​相互交谈。

两个原因:

  • 科技服务为骨料根定义清晰的事务边界。重用代码意味着可能会采用一种避开先决条件,后置条件和不变检查的捷径。其次,代码共享迫使你将模型的变化与所有依赖的微服务结合起来,这可能会破坏采用微服务的目的。拥有不同的API版本将帮助您逐步管理。