关于java:两个spring启动应用程序之间的通信类型

Types of Communications between two spring boot application

我有两个Spring引导应用程序,需要在这两个应用程序之间进行通信。我有REST模板进行通信。除了REST模板,还有其他通信技术吗?


微服务体系结构中使用了一些模式:

  • https://medium.com/@diogo.lucas/communication-patterns-in-a-microservice-world-af07192b12d3
  • http://microservices.io/patterns/communication-style/messaging.html
  • https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/architect-microservice-container-applications/communication-in-microservice-architecture

  • 这个问题本身与Springboot无关。这里的问题是两个应用程序(Web或非Web)应该如何相互通信。

    在通信方面,这又取决于需求,您需要同步通信还是异步通信。

    如果它的同步通信(您在那里等待结果,并且客户机被阻塞),则使用REST模板如果它的异步通信(您不想等待结果,并且客户机没有被阻塞),那么您可以使用消息代理,如ActiveMQ、Kafka等。


    如果您在应用程序中使用Spring,那么您可能需要尝试Spring集成。Spring Integration是一个弹簧模块,有助于将两个系统集成在一起。

    Spring Integration extends the Spring programming model to support the well-known Enterprise Integration Patterns. Spring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters.

    您也可以使用Apache camel。请在此处查看更多详细信息。

    Apache Camel is an open source Java framework that focuses on making integration easier and more accessible to developers. It does this by providing:

    • concrete implementations of all the widely used Enterprise Integration Patterns (EIPs)
    • connectivity to a great variety of transports and APIs
    • easy to use Domain Specific Languages (DSLs) to wire EIPs and transports together