集成端点

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

回顾一下

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

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

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

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

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

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

AMQP

入站通道适配器

出站通道适配器

入站网关

出站网关

Apache Camel

出站通道适配器

出站网关

Apache Cassandra

出站通道适配器

出站网关

Debezium

Debezium 入站通道适配器

事件

接收 Spring 应用程序事件

发送 Spring 应用程序事件

Feed

Feed 入站通道适配器

文件

读取文件“tail”文件

写入文件

写入文件

FTP(S)

FTP 入站通道适配器

FTP 出站通道适配器

FTP 出站网关

GraphQL

GraphQL 出站网关

Hazelcast

Hazelcast 入站通道适配器

Hazelcast 出站通道适配器

HTTP

HTTP 命名空间支持

HTTP 命名空间支持

Http 入站组件

HTTP 出站组件

JDBC

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

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

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

JMS

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

出站通道适配器

入站网关

出站网关

JMX

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

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

操作调用出站网关

JPA

入站通道适配器

出站通道适配器

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

Apache Kafka

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

出站通道适配器

入站网关

出站网关

邮件

邮件接收通道适配器

邮件发送通道适配器

MongoDB

MongoDB 入站通道适配器

MongoDB 出站通道适配器

MQTT

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

出站通道适配器

R2DBC

R2DBC 入站通道适配器

R2DBC 出站通道适配器

Redis

Redis 入站通道适配器Redis 队列入站通道适配器Redis 存储入站通道适配器Redis 流入站通道适配器

Redis 出站通道适配器Redis 队列出站通道适配器Redis 存储出站通道适配器Redis 流出站通道适配器

Redis 队列入站网关

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

资源

资源入站通道适配器

RSocket

RSocket 入站网关

RSocket 出站网关

SFTP

SFTP 入站通道适配器

SFTP 出站通道适配器

SFTP 出站网关

SMB

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

SMB 出站通道适配器

SMB 出站网关

STOMP

STOMP 入站通道适配器

STOMP 出站通道适配器

从流中读取

写入流

Syslog

Syslog 入站通道适配器

TCP

TCP 适配器

TCP 适配器

TCP 网关

TCP 网关

UDP

UDP 适配器

UDP 适配器

WebFlux

WebFlux 入站通道适配器

WebFlux 出站通道适配器

入站 WebFlux 网关

出站 WebFlux 网关

Web 服务

入站 Web 服务网关

出站 Web 服务网关

Web 套接字

WebSocket 入站通道适配器

WebSocket 出站通道适配器

XMPP

XMPP 消息XMPP 在线状态

XMPP 消息XMPP 在线状态

ZeroMQ

ZeroMQ 入站通道适配器

ZeroMQ 出站通道适配器

此外,正如核心消息传递中所述,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 而停止时,它才有用。这样的异常可以在 errorChannel 流中处理,例如为请求客户端生成补偿回复。

© . This site is unofficial and not affiliated with VMware.