アプリケーションを ApsaraMQ for RabbitMQ ブローカーに接続する前に、インスタンス、vhost、exchange、queue、ユーザー名とパスワードのペアなど、必要な ApsaraMQ for RabbitMQ リソースを作成する必要があります。また、exchange を queue にバインドし、インスタンスのエンドポイントを取得する必要があります。SDK を使用してメッセージを送受信する場合は、SDK コードでリソース情報を指定する必要があります。
前提条件
Resource Access Management (RAM) ユーザーを使用して ApsaraMQ for RabbitMQ にアクセスしてリソースを作成する場合は、必要な権限を RAM ユーザーに付与する必要があります。詳細については、「ステップ 1: (オプション) RAM ユーザーに権限を付与する」をご参照ください。
インスタンスの作成
ApsaraMQ for RabbitMQ では、インスタンスは vhost、exchange、queue などの基本リソースを含む独立したリソースエンティティです。
ApsaraMQ for RabbitMQ コンソール にログオンします。左側のナビゲーションペインで、インスタンスリスト をクリックします。
上部のナビゲーションバーで、リージョンを選択します。インスタンスリスト ページで、インスタンスの作成 をクリックします。
購入ページで、画面の指示に従って設定を完了し、利用規約を読み、選択してから、[今すぐ購入] をクリックします。
画面の指示に従って支払いを完了します。
インスタンスリスト ページの上部ナビゲーションバーで、インスタンスが作成されたリージョンを選択します。表示されるページで、作成したインスタンスを表示します。
説明Professional Edition または Enterprise Edition インスタンスを購入すると、インスタンスはすぐに Running 状態になります。
Enterprise Platinum Edition インスタンスを購入すると、インスタンスは Deploying 状態になります。インスタンスがデプロイされると、インスタンスは Running 状態になります。
リソースの設定
1. vhost の作成
vhost は、リソースを論理的に分離するために使用されます。各 vhost は、独自の exchange、queue、およびバインディングを管理します。アプリケーションは、独立した vhost 上で安全に実行できます。このようにして、アプリケーションのビジネスは他のアプリケーションの影響を受けません。1 つのインスタンスに複数の vhost を含めることができ、1 つの vhost に複数の exchange と queue を含めることができます。プロデューサーまたはコンシューマーを ApsaraMQ for RabbitMQ に接続する前に、vhost を指定する必要があります。
ApsaraMQ for RabbitMQ コンソール にログオンします。左側のナビゲーションペインで、インスタンスリスト をクリックします。
インスタンスリスト ページの上部ナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。次に、インスタンスリストで、管理するインスタンスの名前をクリックします。
左側のナビゲーションペインで、vHost リスト をクリックします。
vHost リスト ページで、vHost の作成 をクリックします。
vHost の作成 パネルで、vhost Name フィールドに vhost 名を入力し、[OK] をクリックします。
2. exchange の作成
exchange は、プロデューサーから受信したメッセージを 1 つ以上の queue にルーティングしたり、メッセージを破棄したりするために使用されます。exchange は、ルーティングキーに基づいてメッセージを queue にルーティングします。exchange の種類ごとに異なるルーティングルールが使用されます。詳細については、「Exchange」をご参照ください。
[インスタンスの詳細] ページの左側のナビゲーションペインで、Exchange リスト をクリックします。
Exchange リスト ページで、この vHost の横にあるドロップダウン矢印をクリックします。切り替え ドロップダウンリストから、exchange を作成する vhost を選択します。次に、Exchange の作成 をクリックします。
Exchange の作成 パネルで、[Exchange 名]、タイプ、[内部] パラメーターを設定します。次に、[OK] をクリックします。次の表にパラメーターを示します。
パラメーター
説明
Exchange 名
exchange 名。amq. は予約フィールドであり、exchange 名のプレフィックスとして使用することはできません。たとえば、amq.test を exchange の名前として使用することはできません。
タイプ
exchange のタイプ。有効な値:
[direct]: このタイプの exchange は、ルーティングキーがメッセージのルーティングキーと同じ queue にメッセージをルーティングします。
[topic]: このタイプの exchange は、direct タイプの exchange に似ています。ただし、topic exchange のルーティングルールは、direct exchange のルーティングルールほど厳しくありません。topic exchange は、メッセージのルーティングキーと、queue を exchange にバインドするために使用されるルーティングキーの間のあいまい一致または複数条件一致の結果に基づいて、1 つ以上のバインドされた queue にメッセージをルーティングします。
[fanout]: このタイプの exchange は、受信したすべてのメッセージを、exchange にバインドされているすべての queue にルーティングします。fanout exchange は、ブロードキャスト機能と同様の方法で動作します。
[headers]: このタイプの exchange は、direct タイプの exchange に似ています。headers exchange と direct exchange の唯一の違いは、headers exchange はルーティングキーではなくヘッダー属性に基づいてメッセージをルーティングすることです。headers exchange を queue にバインドする場合は、キーと値の形式でバインディング属性を設定する必要があります。headers exchange にメッセージを送信する場合は、メッセージのヘッダー属性をキーと値の形式で設定する必要があります。headers exchange はメッセージを受信すると、メッセージのヘッダー属性とバインドされた queue のバインディング属性の間の一致結果に基づいてメッセージをルーティングします。
[x-delayed-message]: このタイプの exchange を宣言し、メッセージの x-delay ヘッダー属性を設定して、メッセージが送信されるまでの期間を指定できます。期間はミリ秒単位です。x-delay ヘッダー属性で指定された期間が経過すると、メッセージは対応する queue に送信されます。exchange は、x-delayed-type で指定された exchange タイプに対応するルーティングルールに基づいてメッセージをルーティングします。
[x-consistent-hash]: このタイプの exchange を使用すると、ルーティングキーまたはヘッダー値に対してハッシュ計算を実行し、整合ハッシュを使用してメッセージを異なる queue にルーティングできます。
[x-delayed-type]
[タイプ] パラメーターを [x-delayed-message] に設定する場合は、このパラメーターを設定して exchange のルーティングルールを指定する必要があります。
[ハッシュ値]
[タイプ] パラメーターを [x-consistent-hash] に設定する場合は、このパラメーターを設定してハッシュ計算の入力値のタイプを指定する必要があります。有効な値:
[routingkey]
[ヘッダー値]: ヘッダーをハッシュ計算の入力値として使用する場合は、hash-header パラメーターの値を指定する必要があります。
[hash-header]
[タイプ] パラメーターを [x-consistent-hash] に設定し、[ハッシュ値] パラメーターを [ヘッダー値] に設定する場合は、このパラメーターをハッシュ計算の入力値として設定する必要があります。
[内部]
exchange が内部 exchange かどうかを指定します。デフォルト値: いいえ。有効な値:
はい: exchange は内部 exchange であり、別の exchange にバインドされています。
いいえ: exchange は内部 exchange ではなく、queue にバインドされています。
3. queue の作成
ApsaraMQ for RabbitMQ では、queue はメッセージキューです。ApsaraMQ for RabbitMQ からのすべてのメッセージは、1 つ以上の queue に配信されます。
[インスタンスの詳細] ページの左側のナビゲーションペインで、キューリスト をクリックします。
キューリスト ページで、この vHost の横にあるドロップダウン矢印をクリックします。切り替え ドロップダウンリストから、queue を作成する vhost を選択します。次に、キューの作成 をクリックします。
キューの作成 パネルで、キュー名 フィールドに queue 名を入力し、[自動削除] パラメーターを設定します。詳細設定 をクリックし、表示される queue パラメーターを設定します。次に、[OK] をクリックします。
表 1. パラメーター
パラメーター
説明
使用上の注意
キュー名
queue 名。
名には、文字、数字、ハイフン (-)、アンダースコア (_)、ピリオド (.)、番号記号 (#)、スラッシュ (/)、アットマーク (@) を使用できます。
名は 1 ~ 255 文字の長さである必要があります。
queue を作成した後、その名前を変更することはできません。queue の名前を変更する場合は、queue を削除して別の queue を作成します。
amq. は予約フィールドであり、exchange 名のプレフィックスとして使用することはできません。たとえば、amq.test を exchange の名前として使用することはできません。
自動削除
コンシューマーから queue への最後のサブスクリプションがキャンセルされた後、queue を自動的に削除するかどうかを指定します。
true: コンシューマーからこの queue への最後のサブスクリプションがキャンセルされると、queue は自動的に削除されます。
false: コンシューマーからこの queue への最後のサブスクリプションがキャンセルされても、queue は自動的に削除されません。
詳細設定
dead-letter exchange、dead-letter ルーティングキー、メッセージの有効期限 (TTL) など、queue のその他のパラメーター。
DeadLetterExchange: dead-letter メッセージが配信される exchange。
DeadLetterRoutingKey: dead-letter メッセージのルーティングキー。dead-letter exchange は、ルーティングキーが dead-letter メッセージのルーティングキーと一致する queue に dead-letter メッセージを送信します。
MessageTTL: メッセージの TTL (ミリ秒単位)。指定されたメッセージ TTL 内に消費されないメッセージは dead-letter メッセージであり、dead-letter exchange に送信されます。詳細については、「メッセージ TTL」をご参照ください。
4. バインディングの作成
キューリスト ページで、管理する queue を見つけ、詳細操作 列の をクリックします。
キュー詳細 ページで、ターゲットとしてバインド タブをクリックします。次に、バインドの追加 をクリックします。
バインドの追加 パネルで、ソース Exchange と [ルーティングキー] パラメーターを設定します。次に、Confirm をクリックします。
説明バインドされた exchange が x-consistent-hash タイプの場合、ルーティングキーは queue の重みを表します。重みの値は、1 ~ 20 の整数である必要があります。
次のステップ
参考資料
次の API オペレーションを呼び出すことによっても、ApsaraMQ for RabbitMQ リソースを作成できます。
CreateInstance: ApsaraMQ for RabbitMQ インスタンスを作成します。
ListInstances: インスタンスエンドポイントを取得します。
CreateVirtualHost: vhost を作成します。
CreateExchange: exchange を作成します。
CreateQueue: queue を作成します。
CreateBinding: バインディングを作成します。
CreateAccount: インスタンスの静的ユーザー名とパスワードのペアを作成します。