【问题标题】:Design a microservice to communicate by messaging and RESTful API [closed]设计一个通过消息传递和 RESTful API 进行通信的微服务 [关闭]
【发布时间】:2021-10-15 02:25:14
【问题描述】:

我正在为特定业务领域设计微服务。
该服务的要求是:

  1. 使用 RESTful API 公开一个同步通信通道。
  2. 通过消息传递与代理进行异步通信。 (将占大部分流量)。

注意:两种通信方式的业务逻辑层相同。

到目前为止,我有两种方法:

方法一

  1. 将服务的业务逻辑层提取到一个集中的核心存储库。
  2. 在 2 个不同的代码库中重用业务逻辑层,一个用于 REST,一个用于消息传递。
  3. 因此,这 2 个不同的代码库作为 2 个不同的进程运行,并且也是单独配置的。

方法2

  1. 鉴于服务代码的架构允许客户端和业务逻辑层可互换切换。
  2. 实现 2 个使用相同 BL 层的不同应用入口点: A. 作为订阅主题的服务器运行 B. Rub 作为暴露 RESTful API 的服务器。
  3. 使用不同的配置部署相同的代码库以建立不同的通信方式。

我的方法可能一开始就不合适,我很高兴听到您如何满足要求。这种情况下的最佳做法是什么?

提前谢谢????

【问题讨论】:

    标签: rest microservices messaging


    【解决方案1】:

    我通常倾向于部署相同的代码库,这样每个部署的实例都可以订阅一个主题并公开一个 RESTful API。例如,主进程的入口点既可以启动 HTTP 服务器,也可以启动主题订阅。

    如果框架/库使这样做不切实际,我会坚决认为这是负面的。至少,主要通过主题订阅接收消息的服务通常有充分的理由能够通过 HTTP 接收控制消息(例如“停止消费”)。

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 2017-06-25
      • 2019-10-01
      • 2018-01-03
      • 2019-10-07
      • 1970-01-01
      • 2019-01-12
      • 1970-01-01
      • 2018-02-24
      相关资源
      最近更新 更多