跳到主要内容

集成端点

QWen Plus 中英对照 Integration Endpoints

本节介绍了 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.4.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
xml

总结:

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

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

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

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

下表总结了各个端点,并提供了指向适当章节的快速链接。

表 1. 终端快速参考

模块入站适配器outbound 适配器入站网关出境网关
AMQP入站通道适配器输出通道适配器入站网关输出网关
Apache CamelN outbound 通道适配器出站通道适配器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 outbound 网关存储过程 outbound 网关
JMS入站通道适配器消息驱动的通道适配器[输出通道适配器](jms.md#jms 输出通道适配器)入站网关[输出网关](jms.md#jms 输出网关)
JMX通知监听通道适配器属性轮询通道适配器树轮询通道适配器通知发布通道适配器操作调用通道适配器N[操作调用 outbound 网关](jmx.md#jmx 操作调用 outbound 网关)
JPA 是 Java Persistence API 的缩写,在中文语境中通常被称为 Java 持久化 API 。它是一种用于在 Java 应用中进行对象关系映射(ORM)的技术规范。入站通道适配器输出通道适配器N更新 outbound gateway检索 outbound gateway
Apache Kafka消息驱动的通道适配器入站通道适配器[输出通道适配器](kafka.md#kafka 输出)入站网关出站网关
邮件邮件接收通道适配器邮件发送通道适配器NN
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
从流读取写入流NN
SyslogSyslog 入站通道适配器NNN
TCPTCP 适配器TCP 适配器TCP 网关TCP 网关
UDPUDP 适配器UDP 适配器NN
WebFluxWebFlux 入站通道适配器WebFlux 输出通道适配器WebFlux 入站网关 outbound WebFlux 网关
Web 服务NN入站 Web 服务网关 outbound Web 服务网关
Web 套接字WebSocket 入站通道适配器WebSocket 外发通道适配器NN
XMPPXMPP 消息XMPP 在线状态XMPP 消息XMPP 在线状态NN
ZeroMQZeroMQ 入站通道适配器ZeroMQ 外发通道适配器NN

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

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