【问题标题】:Microservices: All operations of Rest API in single deployable or each operation as independently deployable微服务:Rest API 的所有操作都可以单独部署或每个操作都可以独立部署
【发布时间】:2019-12-22 00:27:18
【问题描述】:

如果我创建一个名为 CustomerManagement 的 RESTful API,其中包含多个操作,例如创建、更新、检索客户等。

每个操作都被视为一项业务功能。后端是一个单体(为上述操作提供不同的 SOAP 接口(WSDL))。

那么,根据微服务设计原则,我们应该为每个操作创建一个可独立部署的映像(也可以独立进行版本控制),还是可以将整个 Rest API 捆绑在一个映像中?

【问题讨论】:

  • 请详细说明为什么您认为这应该独立部署?
  • @nitgeek 您可以部署整个 API,但有时如果您需要额外的灵活性或更改移动部件的能力,您可以将域拆分为更小的部分,因此这实际上取决于您的目标。

标签: rest microservices


【解决方案1】:

如果我创建一个名为 CustomerManagement 的 RESTful API,其中包含多个操作,例如创建、更新、检索客户等

根据 REST 原则,API 被设计为资源。一个资源代表一个领域实体。在您的情况下,客户是域实体。因此,您的 REST API 应称为“客户”。 API 类似于 /api/v1/customers。您可以根据需要在此 API 上实现 Http 操作。

现在回答您的问题,属于 API 的所有操作都应该属于同一应用程序的一部分。将其拆分为不同的应用程序或多个部署是没有意义的——这不仅会导致代码重复,而且对每个部署的管理都是一种开销。

我建议您阅读 REST 原则。这篇文章适合初学者-https://developer.ibm.com/technologies/web-development/articles/ws-restful

【讨论】:

  • 谢谢,但我知道 Rest 原则,问题是在微服务原则的上下文中。
猜你喜欢
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 2016-12-07
  • 2012-06-24
  • 2020-01-27
  • 2021-06-13
相关资源
最近更新 更多