|
对于最新稳定版本,请使用 Spring Integration 7.0.0! |
集成端点
本节介绍了Spring Integration提供的各种通道适配器和消息网关,以支持与外部系统的基于消息的通信。
从AMQP到Zookeeper的每个系统都有其集成需求,本节将涵盖。
端点快速参考表
如前文所述,Spring Integration 提供了多个端点,用于与外部系统、文件系统等接口。
为了实现透明依赖管理,Spring Integration 提供了一个物料清单 POM,可导入 Maven 配置:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-bom</artifactId>
<version>6.2.11</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
总结一下:
-
入站信道适配器用于单向集成,将数据带入消息应用。
-
出站通道适配器用于单向集成,将数据从消息应用中发送出去。
-
入站网关用于双向集成流程,其他系统调用消息应用并接收回复。
-
出站网关用于双向集成流程,消息应用调用某个外部服务或实体并期望结果。
下表总结了各个端点,并附有快速链接至相应章节。
| 模块 | 入站适配器 | 出站适配器 | 入站网关 | 出站网关 |
|---|---|---|---|---|
AMQP |
||||
阿帕奇骆驼 |
N |
N |
||
阿帕奇·卡桑德拉 |
N |
N |
||
德贝齐姆 |
N |
N |
N |
|
事件 |
N |
N |
||
饲料 |
N |
N |
N |
|
文件 |
N |
|||
FTP(S) |
N |
|||
GraphQL |
N |
N |
N |
|
Hazelcast |
N |
N |
||
HTTP |
||||
JDBC |
N |
|||
JMS |
||||
JMX |
N |
|||
JPA |
N |
|||
阿帕奇·卡夫卡 |
||||
邮件 |
N |
N |
||
MongoDB |
N |
N |
||
MQTT |
N |
N |
||
R2DBC |
N |
N |
||
Redis |
Redis 入站通道适配器,Redis 队列入站通道适配器,Redis 存储入站通道适配器,Redis 流式入站通道适配器 |
Redis 出站通道适配器、Redis 队列出站通道适配器、RedisStore 出站通道适配器、Redis Stream 出站通道适配器 |
||
资源 |
N |
N |
N |
|
RSocket |
N |
N |
||
SFTP |
N |
|||
中小企业 |
N |
|||
STOMP |
N |
N |
||
流 |
N |
N |
||
系统日志 |
N |
N |
N |
|
TCP |
||||
UDP |
N |
N |
||
网络流 |
||||
网络服务 |
N |
N |
||
网页套接字 |
N |
N |
||
XMPP |
N |
N |
||
零MQ |
N |
N |
此外,正如核心消息中所述,Spring Integration 提供了与普通 Java 对象(POJO)接口的端点。
正如在通道适配器中讨论的,<int:入站通道适配器>element 允许你轮询 Java 方法的数据。
这<int:出站通道适配器>元素可以让你将数据发送到无效方法。
正如消息网关中讨论的,<int:gateway>element 允许任何 Java 程序调用消息流。
这些方法都无需对 Spring 集成进行任何源码层依赖。
在此语境下,出站网关的等价物是使用服务激活器(参见服务激活器)来调用返回对象某种形式的。
从版本开始5.2.2所有入站网关都可以配置为errorOnTimeout布尔旗用于抛出 aMessageTimeoutException当下游流程在回复超时期间没有返回回复时。
计时器只有在线程将控制权交还给网关时才会启动,因此通常只有在下游流异步或因零返回来自某个处理程序,例如过滤器。
此类异常可以在errorChannel流程,例如为请求客户而提交报酬答复。