1

在每次战争中进行大量小型部署和少量 Web 服务,还是在每次战争中进行一次大型部署和大量 Web 服务更好?

在这种情况下,假设所有的 Web 服务共享一个共同的后端并且将从代码共享中受益。对于小型战争,必须将共享代码放入 jar 项目中,并包含在所有较小的部署中。现在每场战争都可以单独测试/部署,但如果后端发生变化,它们都需要更新,而不仅仅是一个。

在这种情况下,后端是供应商提供的另一个 Web 服务。它的更新通常是向后兼容的,但并非总是如此。

我知道没有明确的答案,但分享的任何经验都会有所帮助。

4

1 回答 1

1

通常,您希望每个服务进行一场战争。关键是服务不必是单个 Web 服务(事实上,某些端点可以是其他技术,而不仅仅是 Web 服务)。一个服务可以公开多个端点和契约。您可以将相关合同组合在一起,例如处理用户管理的服务可以为用户和组提供 API。然而,与订单相关的 API 可能属于不同的服务(因此属于战争)。如果你对太小的服务片段进行切片,你会得到我所说的纳米服务反模式,其中服务的开销大于你从中获得的实用程序

在此处输入图像描述

于 2013-01-12T08:24:21.607 回答