エクスチェンジは、プロデューサーから受信したメッセージを 1 つ以上のキューにルーティングしたり、メッセージを破棄したりするために使用されます。 エクスチェンジは、ルーティングキーに基づいてメッセージをキューにルーティングします。 エクスチェンジの種類ごとに異なるルーティングルールが使用されます。 このトピックでは、ApsaraMQ for RabbitMQ コンソールでエクスチェンジを作成する方法、エクスチェンジの統計情報を表示する方法、エクスチェンジをキューにバインドする方法、特定のエクスチェンジをソースエクスチェンジとして使用する方法、特定のエクスチェンジを宛先エクスチェンジとして使用する方法、およびエクスチェンジ内のメッセージをバインドされたキューに送信する方法について説明します。
エクスチェンジの作成
ApsaraMQ for RabbitMQ コンソールにログオンします。 左側のナビゲーションペインで、インスタンスリスト をクリックします。
インスタンスリスト ページの上部ナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。 次に、インスタンスリストで、管理するインスタンスの名前をクリックします。
左側のナビゲーションペインで、Exchange リスト をクリックします。
Exchange リスト ページで、この vHost の横にあるドロップダウン矢印をクリックします。 切り替え ドロップダウンリストから、エクスチェンジを作成する vhost を選択します。 次に、Exchange の作成 をクリックします。
Exchange の作成 パネルで、エクスチェンジ名、タイプ、および [内部] パラメーターを設定します。 次に、[OK] をクリックします。 次の表にパラメーターを示します。
パラメーター
説明
Exchange 名
エクスチェンジ名。 amq. は予約フィールドであり、エクスチェンジ名のプレフィックスとして使用することはできません。 たとえば、amq.test をエクスチェンジの名前として使用することはできません。
タイプ
エクスチェンジのタイプ。 有効な値:
direct: このタイプのエクスチェンジは、ルーティングキーがメッセージのルーティングキーと同じであるキューにメッセージをルーティングします。
topic: このタイプのエクスチェンジは、direct タイプのエクスチェンジに似ています。 ただし、topic エクスチェンジのルーティングルールは、direct エクスチェンジのルーティングルールほど厳格ではありません。 topic エクスチェンジは、メッセージのルーティングキーと、キューをエクスチェンジにバインドするために使用されるルーティングキーの間のあいまい一致または複数条件一致の結果に基づいて、メッセージを 1 つ以上のバインドされたキューにルーティングします。
fanout: このタイプのエクスチェンジは、受信したすべてのメッセージを、エクスチェンジにバインドされているすべてのキューにルーティングします。 fanout エクスチェンジは、ブロードキャスト機能と同様の方法で動作します。
headers: このタイプのエクスチェンジは、direct タイプのエクスチェンジに似ています。 headers エクスチェンジと direct エクスチェンジの唯一の違いは、headers エクスチェンジはルーティングキーではなくヘッダー属性に基づいてメッセージをルーティングすることです。 headers エクスチェンジをキューにバインドするときは、キーと値の形式でバインディング属性を設定する必要があります。 headers エクスチェンジにメッセージを送信するときは、メッセージのヘッダー属性をキーと値の形式で設定する必要があります。 headers エクスチェンジはメッセージを受信した後、メッセージのヘッダー属性とバインドされたキューのバインディング属性の間の一致結果に基づいてメッセージをルーティングします。
x-delayed-message: このタイプのエクスチェンジを宣言し、メッセージの x-delay ヘッダー属性を設定して、メッセージが送信されるまでの期間を指定できます。 期間はミリ秒単位です。 メッセージは、x-delay ヘッダー属性で指定された期間が経過した後に、対応するキューに送信されます。 エクスチェンジは、x-delayed-type で指定されたエクスチェンジタイプに対応するルーティングルールに基づいてメッセージをルーティングします。
x-consistent-hash: このタイプのエクスチェンジを使用すると、ルーティングキーまたはヘッダー値に対してハッシュ計算を実行し、コンシステントハッシュを使用してメッセージを異なるキューにルーティングできます。
x-delayed-type
[タイプ] パラメーターを x-delayed-message に設定する場合は、このパラメーターを設定してエクスチェンジのルーティングルールを指定する必要があります。
ハッシュ値
[タイプ] パラメーターを x-consistent-hash に設定する場合は、このパラメーターを設定して、ハッシュ計算の入力値のタイプを指定する必要があります。 有効な値:
RoutingKey
ヘッダー値: ハッシュ計算の入力値としてヘッダーを使用する場合は、hash-header パラメーターの値を指定する必要があります。
hash-header
[タイプ] パラメーターを x-consistent-hash に設定し、[ハッシュ値] パラメーターを ヘッダー値 に設定する場合は、このパラメーターをハッシュ計算の入力値として設定する必要があります。
内部
エクスチェンジが内部エクスチェンジかどうかを指定します。 デフォルト値: いいえ。 有効な値:
はい: エクスチェンジは内部エクスチェンジであり、別のエクスチェンジにバインドされています。
いいえ: エクスチェンジは内部エクスチェンジではなく、キューにバインドされています。
エクスチェンジの統計情報の表示
さまざまなメトリックを表示して、問題をできるだけ早く特定し、見つけることができます。
Exchange リスト ページで、統計情報を表示するエクスチェンジを見つけ、詳細操作 列の をクリックします。
Exchange 詳細 ページで、モニタリング指標 タブまたは 指示板 タブをクリックします。
エクスチェンジの統計情報は、インスタンスのエディションによって異なります。 以下の項目で詳細を説明します:
Enterprise Edition および Enterprise Platinum Edition: Managed Service for Prometheus および Managed Service for Grafana が提供するメトリックを表示できます。 ダッシュボードとダッシュボードに表示されるメトリックについては、「ダッシュボード」をご参照ください。
Standard EditionおよびProfessional Edition: CloudMonitorによって提供される監視データを表示できます。CloudMonitorによって提供されるメトリックについては、監視とアラートをご参照ください。
説明ApsaraMQ for RabbitMQ では、Standard Edition インスタンスを新規購入できなくなりました。既存の Standard Edition インスタンスは引き続き使用できます。
エクスチェンジをキューにバインドする
エクスチェンジをキューにバインドして、エクスチェンジがメッセージをルーティングするキューを決定できます。
Exchange リスト ページで、管理するエクスチェンジを見つけ、ソースとしてバインド操作 列の をクリックします。
ソースとしてバインド タブの Exchange 詳細 ページで、バインドの追加 をクリックします。
バインドの追加 パネルで、バインディングターゲットのタイプ パラメーターを キュー に設定し、バインディングターゲット ドロップダウンリストからキューを選択し、[ルーティングキー] パラメーターを設定して、[OK] をクリックします。
説明キューをバインドするエクスチェンジのタイプが x-consistent-hash の場合、[ルーティングキー] パラメーターはキューの重みを指定します。 [ルーティングキー] パラメーターの値は、1 から 20 までの整数です。
エクスチェンジがキューに複数回バインドされている場合、条件を満たす最初のバインディングのみが有効になります。
エクスチェンジがバインドされているキューの重みを変更するには、既存のバインディングを削除してから新しいバインディングを追加する必要があります。

特定のエクスチェンジをソースエクスチェンジとして使用する
特定のエクスチェンジをソースエクスチェンジとして使用し、そのエクスチェンジを別のエクスチェンジにバインドできます。 これにより、ルーティングルールに基づいて、エクスチェンジ内のメッセージを別のエクスチェンジに転送できます。
Exchange リスト ページで、管理するエクスチェンジを見つけ、ソースとしてバインド操作 列の をクリックします。
ソースとしてバインド タブの Exchange 詳細 ページで、バインドの追加 をクリックします。
バインドの追加 パネルで、バインディングターゲットのタイプ パラメーターを エクスチェンジ に設定し、バインディングターゲット ドロップダウンリストからエクスチェンジを選択し、[ルーティングキー] パラメーターを設定して、[OK] をクリックします。

特定のエクスチェンジを宛先エクスチェンジとして使用する
特定のエクスチェンジを宛先エクスチェンジとして使用し、別のエクスチェンジをそのエクスチェンジにバインドできます。 これにより、ルーティングルールに基づいて、別のエクスチェンジ内のメッセージをそのエクスチェンジに転送できます。
Exchange リスト ページで、管理するエクスチェンジを見つけ、詳細操作 列の をクリックします。
Exchange 詳細 ページで、ターゲットとしてバインド タブをクリックします。 次に、バインドの追加 をクリックします。
バインドの追加 パネルで、ソース Exchange ドロップダウンリストからエクスチェンジを選択し、[ルーティングキー] フィールドにルーティングキーを入力し、バインディングターゲットのタイプ と ターゲット Exchange にデフォルト値を使用し、[OK] をクリックします。

メッセージの送信
エクスチェンジにバインディングを追加した後、ApsaraMQ for RabbitMQ コンソールで、エクスチェンジ内のメッセージをエクスチェンジがバインドされているキューに送信したり、宛先エクスチェンジ内のメッセージをソースエクスチェンジに送信したりできます。
Exchange リスト ページで、管理するエクスチェンジを見つけ、詳細操作 列の をクリックします。
Exchange 詳細 ページで、ソースとしてバインド タブまたは ターゲットとしてバインド タブをクリックします。
[送信元としてバインド] または [送信先としてバインド] リストで、指定のバインドを選択し、メッセージ送信 を 操作 列でクリックします。
メッセージ送信 パネルで、Message ID パラメーターと Message Body パラメーターを設定します。 次に、OK をクリックします。
エクスチェンジの削除
エクスチェンジを削除すると、プロデューサーはエクスチェンジにメッセージを送信したり、エクスチェンジ内のメッセージを 1 つ以上のキューにルーティングしたりできなくなります。 慎重に行ってください。
headers タイプのエクスチェンジは削除できません。
vhost の組み込みエクスチェンジは削除できません。 これらのエクスチェンジは、amq.direct、amq.topic、および amq.fanout です。
Exchange リスト ページで、削除する Exchange の名前をクリックします。[Exchange の詳細] ページの右上隅にある [削除] をクリックします。
[注記] メッセージで、[OK] をクリックします。
参照
エクスチェンジの詳細については、「エクスチェンジ」をご参照ください。