跳到主要内容
版本:7.0.2

集成端点

DeepSeek V3 中英对照 Integration Endpoints

本节涵盖了Spring Integration提供的各种通道适配器和消息网关,用于支持与外部系统进行基于消息的通信。

每个系统,从 AMQP 到 Zookeeper,都有其自身的集成要求,本节将对此进行介绍。

端点快速参考表

正如前面章节所讨论的,Spring Integration 提供了许多用于与外部系统、文件系统等接口的端点。

为了实现透明的依赖管理,Spring Integration 提供了一个物料清单(BOM)POM,可供导入到 Maven 配置中:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-bom</artifactId>
<version>7.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

回顾一下:

  • 入站通道适配器用于单向集成,将数据引入消息传递应用程序。

  • 出站通道适配器用于单向集成,将数据发送出消息传递应用程序。

  • 入站网关用于双向集成流,其中其他系统调用消息传递应用程序并接收回复。

  • 出站网关用于双向集成流,其中消息传递应用程序调用某些外部服务或实体并期望得到结果。

下表汇总了各个端点,并提供了快速链接至相应章节。

表 1. 端点快速参考

模块入站适配器出站适配器入站网关出站网关
AMQP入站通道适配器出站通道适配器入站网关出站网关
Apache CamelN出站通道适配器N出站网关
Apache CassandraN出站通道适配器N出站网关
DebeziumDebezium 入站通道适配器NNN
事件接收 Spring 应用事件发送 Spring 应用事件NN
FeedFeed 入站通道适配器NNN
文件读取文件‘tail’ 文件写入文件N写入文件
FTP(S)FTP 入站通道适配器FTP 出站通道适配器NFTP 出站网关
GraphQLNNNGraphQL 出站网关
HazelcastHazelcast 入站通道适配器Hazelcast 出站通道适配器NN
HTTPHTTP 命名空间支持HTTP 命名空间支持Http 入站组件HTTP 出站组件
JDBC入站通道适配器存储过程入站通道适配器出站通道适配器存储过程出站通道适配器N出站网关存储过程出站网关
JMS入站通道适配器消息驱动通道适配器出站通道适配器入站网关出站网关
JMX通知监听通道适配器属性轮询通道适配器树轮询通道适配器通知发布通道适配器操作调用通道适配器N操作调用出站网关
JPA入站通道适配器出站通道适配器N更新出站网关检索出站网关
Apache Kafka消息驱动通道适配器入站通道适配器出站通道适配器入站网关出站网关
邮件Mail-receiving Channel AdapterMail-sending Channel AdapterNN
MongoDBMongoDB 入站通道适配器MongoDB 出站通道适配器NN
MQTT入站(消息驱动)通道适配器出站通道适配器NN
R2DBCR2DBC 入站通道适配器R2DBC 出站通道适配器NN
RedisRedis 入站通道适配器Redis 队列入站通道适配器Redis 存储入站通道适配器Redis 流入站通道适配器Redis 出站通道适配器Redis 队列出站通道适配器RedisStore 出站通道适配器Redis 流出站通道适配器Redis 队列入站网关Redis 出站命令网关Redis 队列出站网关
资源资源入站通道适配器NNN
RSocketNNRSocket 入站网关RSocket 出站网关
SFTPSFTP 入站通道适配器SFTP 出站通道适配器NSFTP 出站网关
SMBSMB 入站通道适配器SMB 流式入站通道适配器SMB 出站通道适配器NSMB 出站网关
STOMPSTOMP 入站通道适配器STOMP 出站通道适配器NN
Stream从流中读取写入流NN
SyslogSyslog 入站通道适配器NNN
TCPTCP 适配器TCP 适配器TCP 网关TCP 网关
UDPUDP 适配器UDP 适配器NN
WebFluxWebFlux 入站通道适配器WebFlux 出站通道适配器入站 WebFlux 网关出站 WebFlux 网关
Web ServicesNN入站 Web 服务网关出站 Web 服务网关
Web SocketsWebSocket 入站通道适配器WebSocket 出站通道适配器NN
XMPPXMPP 消息XMPP 在线状态XMPP 消息XMPP 在线状态NN
ZeroMQZeroMQ 入站通道适配器ZeroMQ 出站通道适配器NN

此外,正如核心消息传递中所讨论的,Spring Integration 提供了与普通 Java 对象(POJOs)交互的端点。如通道适配器所述,<int:inbound-channel-adapter> 元素允许您轮询 Java 方法以获取数据。<int:outbound-channel-adapter> 元素允许您将数据发送到 void 方法。如消息网关所述,<int:gateway> 元素允许任何 Java 程序调用消息流。所有这些功能都无需在源代码级别依赖 Spring Integration。在此上下文中,与出站网关等效的是使用服务激活器(参见服务激活器)来调用返回某种 Object 的方法。

从版本 5.2.2 开始,所有入站网关都可以配置一个 errorOnTimeout 布尔标志,以便在下游流在回复超时期间未返回回复时抛出 MessageTimeoutException。计时器在线程将控制权返回给网关之前不会启动,因此通常仅在下游流是异步的,或者由于某些处理程序(例如 filter)返回 null 而停止时才有用。此类异常可以在 errorChannel 流上处理,例如为请求客户端生成补偿回复。