すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RabbitMQ:Managing exchanges

最終更新日:Mar 09, 2026

エクスチェンジは、プロデューサーからメッセージを受信し、ルーティングルールに基づいて1つ以上のキューにルーティングします。各エクスチェンジタイプは異なるルーティング戦略を使用します。ダイレクトエクスチェンジはルーティングキーに正確に一致させ、ファンアウトエクスチェンジはすべてのバインドされたキューにブロードキャストします。一致するキューがない場合、エクスチェンジはメッセージを破棄します。

エクスチェンジの種類

ルーティングのニーズに合ったエクスチェンジタイプを選択してください。

タイプ

ルーティング動作

使用場面

direct

バインディングキーがメッセージルーティングキーに正確に一致するキューにメッセージをルーティングします。

専用の注文処理キューに order.created イベントをルーティングするなど、正確なキーに基づいた1対1のメッセージ配信が必要な場合に使用します。

topic

メッセージルーティングキーとバインディングパターン間のパターンマッチングに基づいて、キューにメッセージをルーティングします。ドット区切りのルーティングキーで * (正確に1つの単語に一致) および # (0個以上の単語に一致) のワイルドカードをサポートします。

logs.error.payment を汎用エラーキュー (logs.error.# でバインド) と支払い固有のキュー (logs.*.payment でバインド) の両方にルーティングするなど、柔軟なルーティングが必要な場合に使用します。

fanout

ルーティングキーに関係なく、すべてのメッセージをすべてのバインドされたキューにルーティングします。

接続されたすべてのクライアントに通知をプッシュするなど、複数のコンシューマーにメッセージをブロードキャストする必要がある場合に使用します。

headers

ルーティングキーではなく、メッセージヘッダー属性に基づいてメッセージをルーティングします。バインディングで x-match 引数を使用します。all に設定するとすべてのヘッダーの一致が必要になり、any に設定すると少なくとも1つのヘッダーの一致が必要になります。

単一のルーティングキーではなく、複数の属性に基づいたルーティングが必要な場合に使用します。

x-delayed-message

メッセージをルーティングする前に、指定された期間保持します。x-delay メッセージヘッダーを使用して、ミリ秒単位で遅延を設定します。基盤となるルーティング戦略は、x-delayed-type パラメーターによって決定されます。

イベント発生から30分後にリマインダー通知を送信するなど、メッセージ配信を遅延させる必要がある場合に使用します。

x-consistent-hash

ルーティングキーまたはヘッダー値に対して一貫したハッシュを使用してキューにメッセージをルーティングし、複数のキュー間で負荷分散を行います。

並列処理のために、一連のコンシューマーキュー全体で均等なメッセージ分散が必要な場合に使用します。

エクスチェンジの作成

前提条件

開始する前に、次のものがあることを確認してください。

  • ApsaraMQ for RabbitMQ インスタンス

  • エクスチェンジを作成する vhost

操作手順

  1. ApsaraMQ for RabbitMQ コンソールにログインします。左側のナビゲーションウィンドウで、[インスタンス] をクリックします。

  2. 上部のナビゲーションバーで、ご利用のインスタンスのリージョンを選択します。インスタンス名をクリックします。

  3. 左側のナビゲーションウィンドウで、[エクスチェンジ] をクリックします。

  4. [エクスチェンジ] ページで、[変更] ボタンを [vhost] の横でクリックします。ドロップダウンリストから、対象の vhost を選択します。次に、[エクスチェンジの作成] をクリックします。

  5. [エクスチェンジの作成] パネルで、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    Exchange Name

    エクスチェンジ名。amq. プレフィックスは予約済みであり、使用できません。たとえば、amq.test は有効な名前ではありません。

    Type

    エクスチェンジタイプ。

    x-delayed-type

    [タイプ]x-delayed-message に設定されている場合に必須です。基盤となるルーティング戦略(direct、topic、fanout、headers、または x-jms-topic)を指定します。

    Hash value

    [タイプ]x-consistent-hash に設定されている場合に指定が必要です。ハッシュ入力ソースを指定します:[ルーティングキー] または [ヘッダー値]

    hash-header

    [ハッシュ値]」が「[ヘッダー値]」に設定されている場合に必須です。ハッシュ入力として使用するヘッダー キーを指定します。

    Internal

    エクスチェンジが内部かどうかを指定します。デフォルト: [いいえ][はい] に設定すると、他のエクスチェンジからのみメッセージを受信する内部エクスチェンジを作成します(プロデューサーから直接は受信しません)。[いいえ] に設定すると、キューにバインドされる標準的なエクスチェンジになります。

エクスチェンジをキューにバインドする

エクスチェンジをキューにバインドして、エクスチェンジがメッセージをルーティングする場所を定義します。

  1. [エクスチェンジ] ページで、対象のエクスチェンジを探し、[操作] 列の [ソースとしてバインド] をクリックします。

  2. [Exchange 詳細] ページの [ソースとしてバインド] タブで、[バインディングの追加] をクリックします。

  3. [バインディングの追加]」パネルで、「[バインド先の種類]」を「[キュー]」に設定し、「[バインド先]」ドロップダウンリストからキューを選択し、「[ルーティングキー]」を設定して、「[OK]」をクリックします。

説明
  • x-consistent-hash 交換では、[ルーティングキー] の値がキューの重み(1 から 20 の整数)を指定します。重みを変更するには、既存のバインディングを削除して、新しいバインディングを作成します。

  • エクスチェンジが同じキューに複数回バインドされている場合、最初に一致するバインディングのみが有効になります。

エクスチェンジを別のエクスチェンジにバインドする

メッセージを別のエクスチェンジに転送する (ソースバインディング)

現在のエクスチェンジをソースとして設定し、ルーティングルールに基づいてメッセージをダウンストリームエクスチェンジに転送します。

  1. エクスチェンジ」ページで、該当するエクスチェンジを見つけ、[操作] 列の [ソースとしてバインド] をクリックします。

  2. ソースとしてバインド済み」タブで、「バインディングの追加」をクリックします。

  3. [バインディングの追加]」パネルで、「[バインド先のタイプ]」を「[Exchange]」に設定し、「[バインド先]」ドロップダウン リストから送信先 Exchange を選択し、「[ルーティング キー]」を設定して、「[OK]」をクリックします。

別のエクスチェンジからメッセージを受信する (送信先バインディング)

現在のエクスチェンジを送信先として設定し、アップストリームエクスチェンジからメッセージを受信します。

  1. 取引所]ページで取引所を見つけ、[詳細]を[操作]列でクリックします。

  2. [エクスチェンジ詳細] ページで、[宛先としてバインド済み] タブをクリックします。[バインディングの追加] をクリックします。

  3. [バインディングの追加]」パネルで、「[ソース Exchange]」ドロップダウンリストからソース Exchange を選択し、ルーティングキーを入力し、「[バインド先のタイプ]」および「[デスティネーション Exchange]」のデフォルト値のままにして、「[OK]」をクリックします。

メッセージの送信

エクスチェンジをバインドした後、ApsaraMQ for RabbitMQ コンソールで、エクスチェンジからバインドされたキューにメッセージを送信したり、送信先エクスチェンジからソースエクスチェンジにメッセージを送信したりできます。

  1. [取引所] ページで、取引所を見つけ、[操作] 列の [詳細] をクリックします。

  2. 取引の詳細」ページの右上隅で、「メッセージを送信」をクリックします。

  3. メッセージ送信」パネルで、「ルーティングキー」を入力し、「必須」(true または false)の値を選択し、「メッセージ ID」と「メッセージ本文」を入力してから、「OK」をクリックします。

エクスチェンジ統計の表示

エクスチェンジメトリックを表示して、メッセージルーティングを監視し、問題を特定します。

  1. エクスチェンジ]ページでエクスチェンジを見つけ、[詳細]を[操作]列でクリックします。

  2. [エクスチェンジ詳細] ページで、[ダッシュボード] タブをクリックします。

利用可能なメトリックは、ご利用のインスタンスエディションによって異なります。

インスタンスエディション

監視ソース

詳細

Enterprise Edition、Enterprise Platinum Edition

Managed Service for Prometheus および Managed Service for Grafana

ダッシュボード」をご参照ください。

Professional Edition、Standard Edition

CloudMonitor

詳細については、「モニタリングとアラート機能」をご参照ください。

説明

Standard Edition インスタンスは購入できなくなりました。既存の Standard Edition インスタンスは引き続き機能します。

エクスチェンジの削除

警告
  • エクスチェンジを削除すると、プロデューサーはエクスチェンジにメッセージを送信できなくなり、エクスチェンジは1つ以上のキューにメッセージをルーティングしたり、メッセージを破棄したりできなくなります。注意して進めてください。

  • headers タイプのエクスチェンジは削除できません。

  • 組み込みの vhost エクスチェンジ (amq.directamq.topicamq.fanoutamq.headers、および amq.match) は削除できません。

  1. [取引所] ページで、削除する取引所の名前をクリックしてください。

  2. [エクスチェンジ詳細]ページの右上隅で、[削除]をクリックします。

  3. [Note] 確認ダイアログで、[OK] をクリックします。

参考資料

エクスチェンジの概念とアーキテクチャの詳細については、「エクスチェンジ」をご参照ください。