我有2个域对象:项目和合同.一个项目可以有很多合同,所以在数据库中它被建模为一个典型的一对多关系.我们的问题是:你如何在微服务环境中对上述模型进行建模?你(a)有2个微服务ProjectService和ContractService吗?或(b)您是否有一个包含项目和合同的ProjectService?
我们认为答案(a)(即2个微服务ProjectService和ContractService)意味着必须调用2个服务来检索和保存完整的Project对象层次结构.另一方面,答案(a)完全将项目与合同分离,这在理论上可能是一件好事,但实际上没用,因为合同在没有项目的情况下不能在逻辑上存在.
这里的正确方法是什么?答案是(a)纳米服务反模式的一个例子吗?
Gry*_*har 10
这取决于复杂的"项目"和"合同"域名.通过回答以下问题,我希望您能够做出正确的决定:
如果几乎所有问题的回答都是"是",那么继续使用2个微服务.我认为最有可能的不是.