Spring 将一层与多层体系结构分离为一个微服务

Spring 将一层与多层体系结构分离为一个微服务,spring,rabbitmq,microservices,multi-tier,Spring,Rabbitmq,Microservices,Multi Tier,场景: 目前,我们有这种模式的多层体系结构 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 该应用程序基于spring4.2、java8、MongoDB 要求: 我们需要将South

场景:

目前,我们有这种模式的多层体系结构

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
该应用程序基于
spring4.2、java8、MongoDB

要求:

我们需要将SouthBound分离为一个单独的应用程序,或者可以说是微服务

问题:

我们正在考虑两种方法

  • 将SouthBound中的服务公开为RESTAPI,并在SrvcLayer中使用它们。 它会增加一些延迟问题,还需要解决安全问题

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

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

    在我们的应用程序中,我们有REST API来通信UI后端部分,这些部分通过AMQP连接

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


    RabbitMQ的同步工作仍然是可能的(,),但无论如何,如果同步使用AMQP,这将以延迟结束,因此我想说,当我们有异步调用时,最好使用REST

    RabbitMQ。但是我们需要像http一样的同步调用。这仍然是可能的,谢谢。我确实经历过。它说“不鼓励,但只要同步响应是强制性的,就可以接受。”没错。但如果您不需要使用RabbitMQ,则可能不需要使用:)请也查看此处