整合端點

本節介紹 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.