我对 Spring Integration 有一些疑问:
我们可以使用 Spring Integration 框架集成两个以上的应用程序吗?
是点对点集成还是面向中间件的集成?
在客户端-服务器架构中如果客户端和服务器都是基于java的应用程序,那么我们应该使用什么来进行同步通信?意思是,我们应该选择 Spring Integration 还是 JAX-RPC?同步通讯哪个更快?
Spring Integration 是一个轻量级的集成框架。它不使用或不需要中央经纪人(许多人认为这是一个好处)。
这不仅仅是点对点;您可以配置多对多环境,但不需要代理。当然,如果您愿意,您可以使用中间件代理(例如 RabbitMQ 或 JMS)。
有很多方法可以执行同步(请求/回复)集成。在 Spring Integration 中,通常用于此目的的组件称为
gateway
(客户端上的 outbound
,服务器上的 inbound
)。
这样做的好处之一是应用程序不必知道正在使用什么技术。通过简单的配置更改,您可以将实际使用的协议更改为您想要的任何协议,而对应用程序本身的更改为零。
许多技术都是开箱即用的,包括 ReST (http)、SOAP WebServices、JMS、AMQP、TCP/IP...)。
最好不要将同步集成视为 RPC - 它完全是使用请求/响应消息传递的松散耦合,消息内容是合约,而不是 API。
单向集成是使用
channel-adapter
而不是 gateway
实现的。
我建议你看一下参考文档:Spring Integration。