0

设想:

目前,我们在这种模式下有多层架构

DBLayer => Tasks to DB
SouthBound => Talks to other devices like router/controller
SrvcLayer => Talks to both SouthBound and DBLayer
UILayer => Talks to UI and SrvcLayer

该应用程序建立在Spring 4.2, Java 8, MongoDB.

要求:

我们需要将 SouthBound 解耦为一个单独的 App,或者可以说是微服务。

问题:

我们正在考虑两种方式

  1. 将 SouthBound 中的服务公开为 REST API 并在 SrvcLayer 中使用它们。它会增加一些延迟问题,并且还需要弄清楚安全部分。

  2. 使用消息队列,如 RabbitMQ。但是这些调用必须是同步的。所以我不确定 RabbitMQ 是否会帮助我们。

哪种方法合适。关于如何构建此用例的任何其他建议。

4

1 回答 1

1

在我们的应用程序中,我们有 REST API 来通信 UI <-> 后端部分本身通过 AMQP 连接。

顺便说一句,RabbitMQ 似乎有异步支持 RabbitMQ 异步支持,所以这可能就足够了。

RabbitMQ 的同步工作仍然是可能的(是否适合通过 ajax 使用消息队列进行同步 rpc 调用https://www.rabbitmq.com/tutorials/tutorial-six-java.html)但无论如何,如果你正在使用 AMQP同步地,这将以延迟结束,所以我会说最好使用 REST

于 2018-11-09T07:21:33.987 回答