Spring 集成提供的各种通道适配器和消息传递网关
本节介绍 Spring 集成提供的各种通道适配器和消息传递网关,以支持与外部系统的基于消息的通信。
每个系统,从AMQP到Zookeeper,都有自己的集成要求,本节将介绍它们。
端点快速参考表
如前面几节所述,Spring 集成提供了许多端点,用于与外部系统、文件系统和其他系统进行交互。
对于透明的依赖关系管理,Spring 集成提供了一个要导入到 Maven 配置中的物料清单 POM:
回顾一下:
- 入站通道适配器用于单向集成,以将数据引入消息传递应用程序。
- 出站通道适配器用于单向集成,以将数据从消息传递应用程序发送出去。
- 入站网关用于双向集成流,其中其他一些系统调用消息传递应用程序并接收回复。
- 出站网关用于双向集成流,其中消息传递应用程序调用某些外部服务或实体并期望结果。
下表总结了各种终结点,并提供了指向相应章节的快速链接。
表 1.端点快速参考
模块 |
入站适配器 |
出站适配器 |
入站网关 |
出站网关 |
阿姆克普 |
入站通道适配器 |
出站通道适配器 |
入站网关 |
出站网关 |
阿帕奇骆驼 |
N |
出站通道适配器 |
N |
出站网关 |
阿帕奇·卡桑德拉 |
N |
出站通道适配器 |
N |
出站网关 |
事件 |
接收春季应用程序事件 |
发送 Spring 应用程序事件 |
N |
N |
饲料 |
馈送入站通道适配器 |
N |
N |
N |
文件 |
读取文件和“尾部”文件 |
写入文件 |
N |
写入文件 |
FTP(S) |
FTP 入站通道适配器 |
FTP 出站通道适配器 |
N |
FTP 出站网关 |
图QL |
N |
N |
N |
GraphQL 出站网关 |
榛子 |
榛子入站通道适配器 |
榛子出站通道适配器 |
N |
N |
HTTP |
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 入站网关 |
RSocket 出站网关 |
自来水龙 |
SFTP 入站通道适配器 |
SFTP 出站通道适配器 |
N |
SFTP 出站网关 |
中小企业 |
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 出站通道适配器 |
入站网络通量网关 |
出站 WebFlux 网关 |
网络服务 |
N |
N |
入站 Web 服务网关 |
出站 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 集成进行任何源代码级依赖。 在此上下文中,出站网关的等效项是使用服务激活器(请参阅服务激活器)来调用返回某种类型的方法。
void
Object
从 version 开始,所有入站网关都可以配置一个布尔标志,以便在下游流在回复超时期间未返回回复时抛出 。 计时器在线程将控制权返回给网关之前不会启动,因此通常它仅在下游流异步或由于某些处理程序(例如 filter)的返回而停止时才有用。 可以在流中处理此类异常,例如为请求客户端生成补偿回复。5.2.2
errorOnTimeout
MessageTimeoutException
null
errorChannel