統合エンドポイント

このセクションでは、外部システムとのメッセージベースの通信をサポートするために、Spring Integration が提供するさまざまなチャネルアダプターとメッセージングゲートウェイについて説明します。

AMQP から Zookeeper までの各システムには独自の統合要件があり、このセクションではそれらについて説明します。

エンドポイントのクイックリファレンステーブル

前のセクションで説明したように、Spring Integration は、外部システム、ファイルシステムなどとのインターフェースに使用される多くのエンドポイントを提供します。

透過的な依存関係管理のために、Spring Integration は Maven 構成にインポートされる部品表 POM を提供します。

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

要点をまとめると:

  • 受信チャネルアダプターは、データをメッセージングアプリケーションに取り込むための一方向統合に使用されます。

  • 送信チャネルアダプターは、メッセージングアプリケーションからデータを送信するための一方向統合に使用されます。

  • 受信ゲートウェイは、他のシステムがメッセージングアプリケーションを呼び出して応答を受信する双方向統合フローに使用されます。

  • 送信ゲートウェイは、メッセージングアプリケーションが外部サービスまたはエンティティを呼び出し、結果を期待する双方向統合フローに使用されます。

次の表は、適切な章へのクイックリンクを使用して、さまざまなエンドポイントをまとめたものです。

表 1: エンドポイントのクイックリファレンス
モジュール 受信アダプター 送信アダプター 受信ゲートウェイ 送信ゲートウェイ

AMQP

受信チャネルアダプター

送信チャネルアダプター

受信ゲートウェイ

送信ゲートウェイ

Apache Camel

N

送信チャネルアダプター

N

送信ゲートウェイ

Apache Cassandra

N

送信チャネルアダプター

N

送信ゲートウェイ

Debezium

Debezium 受信チャネルアダプター

N

N

N

イベント

Spring アプリケーションイベントの受信

Spring アプリケーションイベントの送信

N

N

フィード

フィード受信チャネルアダプター

N

N

N

ファイル

ファイルを読むおよび "tail" ファイル

ファイルを書く

N

ファイルを書く

FTP(S)

FTP 受信チャネルアダプター

FTP 送信チャネルアダプター

N

FTP 送信ゲートウェイ

GraphQL

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 ストア受信チャネルアダプター , 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

ストリーム

ストリームからの読み取り

ストリームへの書き込み

N

N

syslog

Syslog Inbound Channel Adapter

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

ZeroMQ

ZeroMQ 受信チャネルアダプター

ZeroMQ 送信チャネルアダプター

N

N

さらに、コアメッセージングで説明したように、Spring Integration は、Plain Old Java Object(POJO)とのインターフェースのためのエンドポイントを提供します。チャンネルアダプターで説明したように、<int:inbound-channel-adapter> 要素を使用すると、データの Java メソッドをポーリングできます。<int:outbound-channel-adapter> 要素を使用すると、void メソッドにデータを送信できます。メッセージングゲートウェイで説明したように、<int:gateway> 要素により、Java プログラムはメッセージングフローを呼び出すことができます。これらはそれぞれ、Spring Integration のソースレベルの依存関係を必要とせずに機能します。このコンテキストでの送信ゲートウェイに相当するのは、サービスアクティベーター(サービスアクティベーターを参照)を使用して、ある種の Object を返すメソッドを呼び出すことです。

バージョン 5.2.2 以降、すべての受信 ゲートウェイは、応答タイムアウト中にダウンストリームフローが応答を返さない場合に MessageTimeoutException をスローするように、errorOnTimeout ブール値フラグを使用して構成できます。タイマーは、スレッドがゲートウェイに制御を返すまで開始されないため、通常、ダウンストリームフローが非同期である場合、または filter などのハンドラーからの null リターンが原因で停止する場合にのみ役立ちます。このような例外は、errorChannel フローで処理できます。たとえば、クライアントをリクエストするためのカバレッジ応答を生成します。