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版本將幫助您逐步管理。