对于最新的稳定版本,请使用 Spring Integration 6.4.3

集成终端节点

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

从 AMQP 到 Zookeeper,每个系统都有自己的集成要求,本节将介绍这些要求。

终端节点快速参考表

如前面几节所述, Spring 集成提供了许多用于与外部系统、文件系统和其他系统交互的端点。

为了实现透明的依赖关系 Management, Spring 集成提供了一个物料清单 POM,可以导入到 Maven 配置中:

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

回顾一下:

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

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

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

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

下表总结了各种终端节点,并提供了指向相应章节的快速链接。

表 1.终端节点快速参考
模块 入站适配器 出站适配器 入站网关 出站网关

AMQP

入站通道适配器

出站通道适配器

入站网关

出站网关

阿帕奇骆驼

N

出站通道适配器

N

出站网关

Apache Cassandra

N

出站通道适配器

N

出站网关

Debezium

Debezium 入站通道适配器

N

N

N

事件

接收 Spring 应用程序事件

发送 Spring 应用程序事件

N

N

饲料

Feed 入站通道适配器

N

N

N

文件

读取文件“tail”文件

写入文件

N

写入文件

FTP (秒)

FTP 入站通道适配器

FTP 出站通道适配器

N

FTP 出站网关

图形QL

N

N

N

GraphQL 出站网关

Hazelcast

Hazelcast 入站通道适配器

Hazelcast 出站通道适配器

N

N

HTTP 协议

HTTP 命名空间支持

HTTP 命名空间支持

Http 入站组件

HTTP 出站组件

JDBC

入站通道适配器和存储过程入站通道适配器

出站通道适配器和存储过程出站通道适配器

N

出站网关和存储过程出站网关

JMS 公司

入站通道适配器消息驱动的通道适配器

出站通道适配器

入站网关

出站网关

JMX

通知侦听通道适配器和属性轮询通道适配器树轮询通道适配器

通知发布通道适配器作调用通道适配器

N

作调用出站网关

JPA

入站通道适配器

出站通道适配器

N

更新出站网关检索出站网关

Apache Kafka

消息驱动通道适配器和入站通道适配器

出站通道适配器

入站网关

出站网关

邮件

邮件接收通道适配器

邮件发送通道适配器

N

N

MongoDB 数据库

MongoDB 入站通道适配器

MongoDB 出站通道适配器

N

N

MQTT 协议

入站 (消息驱动) 通道适配器

出站通道适配器

N

N

R2DBC

R2DBC 入站通道适配器

R2DBC 出站通道适配器

N

N

Redis

Redis 入站通道适配器Redis 队列入站通道适配器Redis Store 入站通道适配器Redis 流入站通道适配器

Redis 出站通道适配器Redis 队列出站通道适配器RedisStore 出站通道适配器Redis 流出站通道适配器

Redis 队列入站网关

Redis 出站命令网关Redis 队列出站网关

资源

资源入站通道适配器

N

N

N

RSocket 系列

N

N

RSocket 入站网关

RSocket 出站网关

SFTP (英语)

SFTP 入站通道适配器

SFTP 出站通道适配器

N

SFTP 出站网关

SMB (中小型企业)

SMB 入站通道适配器SMB 流入站通道适配器

SMB 出站通道适配器

N

SMB 出站网关

STOMP

STOMP 入站通道适配器

STOMP 出站通道适配器

N

N

从 Streams 中读取

写入流

N

N

系统日志

Syslog 入站通道适配器

N

N

N

TCP 协议

TCP 适配器

TCP 适配器

TCP 网关

TCP 网关

UDP 协议

UDP 适配器

UDP 适配器

N

N

WebFlux的

WebFlux 入站通道适配器

WebFlux 出站通道适配器

入站 WebFlux 网关

出站 WebFlux 网关

Web 服务

N

N

入站 Web 服务网关

出站 Web 服务网关

Web 套接字

WebSocket 入站通道适配器

WebSocket 出站通道适配器

N

N

XMPP 系列

XMPP 消息XMPP 状态

XMPP 消息XMPP 状态

N

N

零MQ

ZeroMQ 入站通道适配器

ZeroMQ 出站通道适配器

N

N

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

从 version 开始5.2.2,所有入站网关都可以配置errorOnTimeoutboolean 标志来抛出一个MessageTimeoutException当下游流在回复超时期间未返回回复时。 在线程将控制权返回给网关之前,计时器不会启动,因此通常它仅在下游流是异步的,或者由于nullreturn 来自某个处理程序,例如 filter。 这样的异常可以在errorChannelflow,例如为请求 Client 端生成补偿回复。


APP信息