【发布时间】:2021-06-21 22:02:06
【问题描述】:
我是微服务新手,正在尝试将大型单体应用程序分解为微服务。在确定微服务的范围时,我无法决定是否应该在服务之间进行数据复制,或者通过将所有需要相同数据的服务合并到一个服务中来忽略 SRP。以下是场景。
我有一项服务,它收到客户的订单,说用这些零件和功能建造一辆汽车。现在我还有其他 2 个功能,它们使用部件和功能来获得一些运行时价值,比如说;
如果订单包含part A和Feature A,则执行X操作。由于这些功能中的每一个都有各自的 UI 用于配置和运行时引擎以派生输出,并且大部分时间更改只出现在这些各自的功能块中,因此我考虑创建单独的微服务。
创建单独的微服务需要复制数据(部件和功能)。另一种选择是,这些服务中的每一个都使用相同的数据,将它们全部归为 1,但是我再次创建了一个大型服务,如果出现故障将停止所有 3 个功能并且违反 SRP。另一种选择可能是当其他 2 个服务需要数据时进行调用并从 Order Service 获取数据,但这会使其高度依赖并通过网络为每个操作获取数据。
任何人都可以建议在这种情况下做什么是理想的。
【问题讨论】:
标签: microservices