本节介绍 Spring 集成提供的各种通道适配器和消息传递网关,以支持与外部系统的基于消息的通信。
每个系统,从AMQP到Zookeeper,都有自己的集成要求,本节将介绍它们。
端点快速参考表
如前面几节所述,Spring 集成提供了许多端点,用于与外部系统、文件系统和其他系统进行交互。
对于透明的依赖关系管理,Spring 集成提供了一个要导入到 Maven 配置中的物料清单 POM:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-bom</artifactId>
<version>6.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
回顾一下:
- 入站通道适配器用于单向集成,以将数据引入消息传递应用程序。
- 出站通道适配器用于单向集成,以将数据从消息传递应用程序发送出去。
- 入站网关用于双向集成流,其中其他一些系统调用消息传递应用程序并接收回复。
- 出站网关用于双向集成流,其中消息传递应用程序调用某些外部服务或实体并期望结果。
下表总结了各种终结点,并提供了指向相应章节的快速链接。
表 1.端点快速参考
模块 | 入站适配器 | 出站适配器 | 入站网关 | 出站网关 |
阿姆克普 | 入站通道适配器 | 出站通道适配器 | 入站网关 | 出站网关 |
阿帕奇骆驼 | N | 出站通道适配器 | N | 出站网关 |
阿帕奇·卡桑德拉 | N | 出站通道适配器 | N | 出站网关 |
事件 | 接收春季应用程序事件 | 发送 Spring 应用程序事件 | N | N |
饲料 | 馈送入站通道适配器 | N | N | N |
文件 | 读取文件和“尾部”文件 | 写入文件 | N | 写入文件 |
FTP(S) | FTP 入站通道适配器 | FTP 出站通道适配器 | N | |
图QL | N | N | N | |
榛子 | 榛子入站通道适配器 | 榛子出站通道适配器 | N | N |
HTTP | HTTP 命名空间支持 | HTTP 命名空间支持 | Http 入站组件 | |
京东 | 入站通道适配器和存储过程入站通道适配器 | 出站通道适配器和存储过程出站通道适配器 | N | 出站网关和存储过程出站网关 |
联合医务处 | 入站通道适配器和消息驱动的通道适配器 | 出站通道适配器 | 入站网关 | 出站网关 |
JMX | 通知侦听通道适配器和属性轮询通道适配器和树轮询通道适配器 | 通知发布通道适配器和操作调用通道适配器 | N | |
太平绅士 | 入站通道适配器 | 出站通道适配器 | N | |
阿帕奇·卡夫卡 | 消息驱动通道适配器和入站通道适配器 | 出站通道适配器 | 入站网关 | 出站网关 |
邮件 | 邮件接收通道适配器 | 邮件发送通道适配器 | N | N |
蒙戈数据库 | MongoDB 入站通道适配器 | MongoDB 出站通道适配器 | N | N |
MQTT | 入站(消息驱动)通道适配器 | 出站通道适配器 | N | N |
R2DBC | R2DBC 入站通道适配器 | R2DBC 出站通道适配器 | N | N |
雷迪斯 | Redis 入站通道适配器、Redis 队列入站通道适配器、Redis 存储入站通道适配器、Redis 流入站通道适配器 | Redis 出站通道适配器、Redis 队列出站通道适配器、RedisStore 出站通道适配器、Redis 流出站通道适配器 | Redis 队列入站网关 | Redis 出站命令网关和 Redis 队列出站网关 |
资源 | 资源入站通道适配器 | N | N | N |
RSocket | N | N | RSocket 入站网关 | |
自来水龙 | SFTP 入站通道适配器 | SFTP 出站通道适配器 | N | |
中小企业 | SMB 入站通道适配器、SMB 流式入站通道适配器 | SMB 出站通道适配器 | N | |
踩 | STOMP 入站通道适配器 | STOMP 出站通道适配器 | N | N |
流 | 从流中读取 | 写入流 | N | N |
系统日志 | 系统日志入站通道适配器 | N | N | N |
技术合作计划(TCP | TCP 适配器 | TCP 适配器 | TCP 网关 | TCP 网关 |
UDP | UDP 适配器 | UDP 适配器 | N | N |
网络通量 | WebFlux 入站通道适配器 | WebFlux 出站通道适配器 | 入站网络通量网关 | |
网络服务 | N | N | 入站 Web 服务网关 | |
网络套接字 | WebSocket 入站通道适配器 | WebSocket 出站通道适配器 | N | N |
XMPP | XMPP 消息和 XMPP 状态 | XMPP 消息和 XMPP 状态 | N | N |
零MQ | 零MQ 入站通道适配器 | 零MQ 出站通道适配器 | N | N |
此外,正如Core Messaging中所讨论的,Spring Integration提供了与普通旧Java对象(POJO)接口的端点。 如通道适配器中所述,该元素允许您轮询 Java 方法以获取数据。 该元素允许您将数据发送到方法。 如消息网关中所述,该元素允许任何 Java 程序调用消息传递流。 这些中的每一个都不需要对 Spring 集成进行任何源代码级依赖。 在此上下文中,出站网关的等效项是使用服务激活器(请参阅服务激活器)来调用返回某种类型的方法。<int:inbound-channel-adapter>
<int:outbound-channel-adapter>
void
<int:gateway>
Object
从 version 开始,所有入站网关都可以配置一个布尔标志,以便在下游流在回复超时期间未返回回复时抛出 。 计时器在线程将控制权返回给网关之前不会启动,因此通常它仅在下游流异步或由于某些处理程序(例如 filter)的返回而停止时才有用。 可以在流中处理此类异常,例如为请求客户端生成补偿回复。5.2.2
errorOnTimeout
MessageTimeoutException
null
errorChannel