3.2. ネットワーク接続での AMQP の使用
ブローカーは AMQP 1.0 仕様をサポートします。AMQP リンクは、ソースとターゲット間のメッセージ (クライアントとブローカー) の一方向プロトコルです。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 -
以下の例のように、AMQP の値を持つ
protocols
パラメーターを URI の一部として追加または設定することで、acceptor
を追加または設定し、AMQP
クライアントを受信します。
<acceptors> <acceptor name="amqp-acceptor">tcp://localhost:5672?protocols=AMQP</acceptor> ... </acceptors>
上記の例では、ブローカーはデフォルトの AMQP ポートであるポート 5672 で AMQP 1.0 クライアントを受け入れます。
AMQP リンクには、送信者と受信側の 2 つのエンドポイントがあります。送信者がメッセージを送信する場合、ブローカーはこれを内部形式に変換するため、ブローカーの宛先に転送できます。受信側はブローカーの宛先に接続し、メッセージを配信前に AMQP に戻します。
AMQP リンクが動的の場合、一時キューが作成され、リモートソースまたはリモートターゲットアドレスのいずれかが一時キューの名前に設定されます。リンクが動的ではない場合、リモートターゲットまたはソースのアドレスがキューに使用されます。リモートターゲットまたはソースが存在しない場合は、例外が発生します。
リンクターゲットは、基礎となるセッションをトランザクションとして処理するために使用される Coordinator でも、ロールバックまたはコミットします。
AMQP ではセッションごとに複数のトランザクション amqp:multi-txns-per-ssn
を使用できますが、現在のバージョンの AMQ Broker はセッションごとに単一のトランザクションのみをサポートします。
AMQP 内の分散トランザクション (XA) の詳細は、仕様の 1.0 バージョンでは提供されません。お使いの環境で分散トランザクションのサポートが必要な場合は、AMQ Core Protocol JMS を使用することが推奨されます。
プロトコルとその機能の詳細は、AMQP 1.0 仕様を参照してください。
3.2.1. AMQP リンクをトピックとして使用
JMS とは異なり、AMQP プロトコルにはトピックが含まれません。ただし、キューのコンシューマーだけでなく、AMQP コンシューマーまたは受信側をサブスクリプションとして扱うことは可能です。デフォルトでは、接頭辞 jms.topic.
でアドレスにアタッチする受信リンクがサブスクリプションとして処理され、サブスクリプションキューが作成されます。以下の表でキャプチャーされているように、Terminus Durability の設定方法に応じて、サブスクリプションキューが永続的または揮発性になります。
この種のマルチキャスト専用キューのサブスクリプションを作成します。 | Terminus Durability を下記のようにセットします。 |
---|---|
永続性 |
|
Non-durable |
|
永続キューの名前は、コンテナー ID とリンク名 (例: my-container-id:my-link-name
) で構成されます。
AMQ Broker は qpid-jms クライアントもサポートし、アドレスに使用される接頭辞に関係なくトピックの使用に対応します。
3.2.2. AMQP セキュリティーの設定
ブローカーは AMQP SASL 認証をサポートします。ブローカーで SASL ベースの認証を設定する方法は、Security を参照してください。