AMQP コネクタ - Mule 4

サポートカテゴリ: 選択

AMQP 用 Anypoint コネクタ (AMQP コネクタ) v1.5

リリースノート: ​AMQP Connector Release Notes - Mule 4
Exchange: AMQP コネクタ

AMQP コネクタにより、アプリケーションは AMQP 0.9.1 準拠のブローカーを使用してメッセージングをパブリッシュおよびコンシュームできます。このコネクタの主な機能は次のとおりです。

  • 非公開の一時キューを使用する要求-返信のコンシュームでの RPC パターン

  • 省略可能なチャネル自己回復を備えた SDK トランザクション管理

  • タイムアウトのある同期メッセージ要求

  • 交換とキューの宣言の管理操作

  • すべての AMQP メッセージプロパティ (カスタムヘッダーを含む)

  • Reply To (返信先) (デフォルトの交換に返信をパブリッシュする)

  • 自動、Mule 駆動型、手動のメッセージ肯定応答

  • 手動のメッセージ拒否

  • 必須および即時のパブリッシュパラメータと、エラー処理で返される (配信不能) メッセージの処理

  • プリフェッチサイズとプリフェッチ数の「サービス品質」設定

  • noLocal および排他的なコンシューマ

  • TLS/SSL 接続

  • JMS コネクタで提供されるようなメッセージビルダー機能

コネクタの設定

AMQP コネクタには、メッセージのパブリッシュとコンシュームの両方を目的として微調整された一連のデフォルト値が標準で用意されています。つまり、自分で設定する必要があるのは、使用する接続を選択することだけです。

次の例では、localhost​ のブローカーへの最低限の接続を設定しています。

<amqp:config name="AMQP_Config">
  <amqp:connection
    host="localhost"
    username="guest"
    password="guest" />
</amqp:config>

AMQP コネクタの Apache Maven pom.xml ファイルの連動関係は次のとおりです。

<dependency>
  <groupId>com.mulesoft.connectors</groupId>
  <artifactId>mule-amqp-connector</artifactId>
  <version>RELEASE</version>
  <classifier>mule-plugin</classifier>
</dependency>

Mule は、RELEASE​ を現在のバージョンに変換します。バージョンを指定するには、Anypoint Exchange で AMQP コネクタ​を参照して [Dependency Snippets (連動関係スニペット)]​ をクリックします。

グローバルデフォルトの定義

メッセージをコンシュームまたはパブリッシュする際に使用する一連のデフォルトパラメータを定義できます。この方法では、設定に関連するすべての操作のグローバルのデフォルト動作を定義し、カスタム動作が必要な操作でのみ各パラメータを上書きすることができます。

たとえば、サイズに関しておよびメッセージ全体に関してプリフェッチサイズウィンドウを定義できます。

<amqp:config name="AMQP_Config">
   <amqp:connection host="localhost" username="guest" password="guest" />
   <amqp:quality-of-service-config prefetchSize="4" prefetchCount="4" />
   <amqp:consumer-config ackMode="IMMEDIATE" />
   <amqp:publisher-config requestBrokerConfirms="true"/>
</amqp:config>

前の例では、この設定に関連付けられたすべての consume​ 操作またリスナは IMMEDIATE​ 種別の肯定応答モードを使用しますが、すべての publish​ または publish-consume​ 操作では、送信メッセージでブローカーからの確認が要求されます。

これらすべてのプロパティは必要に応じて操作レベルで上書きできます。たとえば、ブローカーからの確認を必要としないメッセージをパブリッシュする必要がある場合は、次のように指定します。

<amqp:publish config-ref="AMQP_Config" requestBrokerConfirms="false"/>

ブローカーへの接続

AMQP 接続は、すべての接続に適用される全般的なパラメータのセットによって定義されます。

認証用のログイン情報の提供

認証済み接続を確立するには、connection​ 要素で username​、password​、virtualhost​ を設定する必要があります。

<amqp:config name="AMQP_Config">
  <amqp:connection host="localhost" virtualhost="/" username="guest" password="guest" />
</amqp:config>

ブローカーへの TLS/SSL 接続の設定

デフォルトの TLS コンテキストでパラメータ useTls​ を使用して、ブローカーへのセキュアな接続を作成できます。次の方法で接続の子要素またはグローバル要素としてカスタム TLS コンテキストを提供することもできます。

<tls:context name="globalTlsContext">
  <tls:trust-store path="tls/tlstest-cacerts.jks"
    password="changeit" />
  <tls:key-store path="tls/tlstest-keystore.jks"
    keyPassword="changeit" password="changeit" />
</tls:context>

<amqp:config name="config">
  <amqp:connection host="localhost" port="5671"
    virtualHost="/" username="guest" password="guest" useTls="true"
    tlsContext="globalTlsContext" />
 </amqp:config>

Server Name Indication

AMQP コネクタ v1.1.0 以降では、Server Name Indication (SNI) がサポートされています。ブローカーで SNI がサポートされている場合、ホスト名を検証して、同じ IP アドレスに別の証明書を提供できます。

パラメータ useSNI​ を使用して、SSL ハンドシェイク中に AMQP クライアントが ClientHello​ メッセージの拡張機能としてホスト名を追加する必要があることを示します。

<tls:context name="globalTlsContext">
  <tls:trust-store path="tls/tlstest-cacerts.jks"
    password="changeit" />
  <tls:key-store path="tls/tlstest-keystore.jks"
    keyPassword="changeit" password="changeit" />
</tls:context>

<amqp:config name="config">
  <amqp:connection host="localhost" port="5671"
    virtualHost="/" username="guest" password="guest" useTls="true" useSni="true"
    tlsContext="globalTlsContext" />
 </amqp:config>

Was this article helpful?

💙 Thanks for your feedback!