此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.0! |
集成终端节点
本节涵盖了 Spring 集成提供的各种通道适配器和消息传递网关,以支持与外部系统进行基于消息的通信。
从 AMQP 到 Zookeeper,每个系统都有自己的集成要求,本节将介绍这些要求。
终端节点快速参考表
如前面几节所述, Spring 集成提供了许多用于与外部系统、文件系统和其他系统交互的端点。
为了实现透明的依赖关系 Management, Spring 集成提供了一个物料清单 POM,可以导入到 Maven 配置中:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-bom</artifactId>
<version>6.3.7-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
回顾一下:
-
入站通道适配器用于单向集成,以将数据引入消息传递应用程序。
-
出站通道适配器用于单向集成,以将数据从消息传递应用程序发送出去。
-
入站网关用于双向集成流,其中其他系统调用消息传递应用程序并接收回复。
-
出站网关用于双向集成流,其中消息传递应用程序调用某些外部服务或实体并期望结果。
下表总结了各种终端节点,并提供了指向相应章节的快速链接。
模块 | 入站适配器 | 出站适配器 | 入站网关 | 出站网关 |
---|---|---|---|---|
AMQP |
||||
阿帕奇骆驼 |
N |
N |
||
Apache Cassandra |
N |
N |
||
Debezium |
N |
N |
N |
|
事件 |
N |
N |
||
饲料 |
N |
N |
N |
|
文件 |
N |
|||
FTP (秒) |
N |
|||
图形QL |
N |
N |
N |
|
Hazelcast |
N |
N |
||
HTTP 协议 |
||||
JDBC |
N |
|||
JMS 公司 |
||||
JMX |
N |
|||
JPA |
N |
|||
Apache Kafka |
||||
邮件 |
N |
N |
||
MongoDB 数据库 |
N |
N |
||
MQTT 协议 |
N |
N |
||
R2DBC |
N |
N |
||
Redis |
Redis 入站通道适配器、Redis 队列入站通道适配器、Redis Store 入站通道适配器、Redis 流入站通道适配器 |
Redis 出站通道适配器、Redis 队列出站通道适配器、RedisStore 出站通道适配器、Redis 流出站通道适配器 |
||
资源 |
N |
N |
N |
|
RSocket 系列 |
N |
N |
||
SFTP (英语) |
N |
|||
SMB (中小型企业) |
N |
|||
STOMP |
N |
N |
||
流 |
N |
N |
||
系统日志 |
N |
N |
N |
|
TCP 协议 |
||||
UDP 协议 |
N |
N |
||
WebFlux的 |
||||
Web 服务 |
N |
N |
||
Web 套接字 |
N |
N |
||
XMPP 系列 |
N |
N |
||
零MQ |
N |
N |
此外,正如核心消息传递中所讨论的, Spring 集成提供了与普通旧 Java 对象(POJO)交互的端点。
如 Channel Adapter 中所述,该元素允许您轮询 Java 方法以获取数据。
该元素允许您将数据发送到方法。
如 Messaging Gateway 中所述,该元素允许任何 Java 程序调用消息传递流。
这些中的每一个都不需要对 Spring 集成的任何源代码级依赖项。
在此上下文中,出站网关的等效物是使用服务激活器(参见 服务激活器)来调用返回某种类型的方法。<int:inbound-channel-adapter>
<int:outbound-channel-adapter>
void
<int:gateway>
Object
从 version 开始,所有入站网关都可以配置布尔标志,以便在下游流在回复超时期间未返回回复时引发 。
在线程将控制权返回给网关之前,计时器不会启动,因此通常它仅在下游流是异步的,或者由于某些处理程序(例如 filter)的返回而停止时才有用。
可以在 flow 上处理此类异常,例如为请求 Client 端生成补偿回复。5.2.2
errorOnTimeout
MessageTimeoutException
null
errorChannel