アプリケーションで必要となる ApsaraMQ for RabbitMQ のリソース (インスタンス、vhost、エクスチェンジ、キュー、バインディング) を作成します。
リソース階層
インスタンス
└── Vhost (論理的な分離)
├── エクスチェンジ (メッセージのルーティング)
└── キュー (メッセージの保存)
└── バインディング (エクスチェンジとキューの接続)
|
リソース |
役割 |
|
[インスタンス] |
他のすべてのリソースの最上位コンテナーです。 |
|
[Vhost] |
エクスチェンジ、キュー、バインディングを分離します。1 つのインスタンスに複数の vhost を保持できます。 |
|
[エクスチェンジ] |
プロデューサーからメッセージを受信し、ルーティングキーに基づいてキューにルーティングします。 |
|
[キュー] |
コンシューマーがメッセージを取得するまでメッセージを保持します。 |
|
[バインディング] |
ルーティングキーを使用してエクスチェンジをキューにリンクします。 |
データフロー: プロデューサー > エクスチェンジ > (ルーティングキー + バインディング) > キュー > コンシューマー
前提条件
Resource Access Management (RAM) ユーザーを使用する場合は、必要な権限を付与してください。詳細については、「ステップ 1: (オプション) RAM ユーザーへの権限付与」をご参照ください。
RAM ユーザーを使用して ApsaraMQ for RabbitMQ インスタンスを作成する場合、ネットワークを設定する際に少なくとも 2 つの vSwitch を選択する必要があります。2 つ未満の vSwitch を選択すると、インスタンスの作成は失敗します。
ステップ 1: インスタンスの作成
-
ApsaraMQ for RabbitMQ コンソールにログインします。ナビゲーションペインで、[Instances] をクリックします。
-
上部メニューでリージョンを選択します。[Instances] ページで、[Create Instance] をクリックします。
-
購入ページでインスタンスの設定を行い、利用規約に同意して、[Buy Now] をクリックします。
-
支払いを完了します。
支払い後、[Instances] ページに戻り、リージョンを選択してインスタンスを表示します。
ステップ 2: vhost の作成
vhost はリソースを分離します。プロデューサーまたはコンシューマーを接続する前に vhost を指定してください。
-
[Instances] ページで、対象インスタンスの名前をクリックします。
-
ナビゲーションペインで、[Vhosts] をクリックします。
-
[Vhosts] ページで、[Create Vhost] をクリックします。
-
[Create Vhost] パネルで、[vhost Name] フィールドに名前を入力し、[OK] をクリックします。
ステップ 3: エクスチェンジの作成
エクスチェンジは、ルーティングキーによってプロデューサーのメッセージをキューにルーティングします。詳細については、「エクスチェンジ」をご参照ください。
-
ナビゲーションペインで、[Exchanges] をクリックします。
-
[Exchanges] ページで、[vhost] ドロップダウンリストを展開し、[Change] から目的の vhost を選択して、[Create Exchange] をクリックします。
-
[Create Exchange] パネルで、次のパラメーターを設定し、[OK] をクリックします。
エクスチェンジのパラメーター
|
パラメーター |
必須 |
説明 |
|
[Exchange Name] |
はい |
[1.exchange名には、アルファベット、数字、ダッシュ (-)、下線 (_)、英語ピリオド (.)、井戸番号 (#)、斜線 (/)、at記号 (@)、コロン (:) 、カンマ (,)、スペース ()、番号 (>) より大きく、長さは1 ~ 255文字に制限されます。] |
|
[Type] |
はい |
エクスチェンジのタイプです。 |
|
[Internal] |
いいえ |
エクスチェンジが内部用かどうかを指定します。デフォルト: [No]。[Yes] に設定すると、このエクスチェンジはキューではなく別のエクスチェンジにバインドされます。 |
以下のパラメーターは、特定のエクスチェンジタイプの場合にのみ表示されます。
|
パラメーター |
設定するタイミング |
説明 |
|
[x-delayed-type] |
[Type] が |
遅延メッセージエクスチェンジのルーティングルールです。 |
|
[Hash value] |
[Type] が |
ハッシュ計算の入力です。有効値: [RoutingKey]、[Header Value]。 |
|
[hash-header] |
[Type] が |
ハッシュ計算の入力として使用されるヘッダーです。 |
エクスチェンジのタイプ
|
タイプ |
ルーティングロジック |
説明 |
|
[direct] |
完全一致 |
メッセージのルーティングキーと完全に一致するルーティングキーを持つキューにメッセージをルーティングします。 |
|
[topic] |
パターンマッチング |
メッセージのルーティングキーとバインディングキーがパターンマッチするキューにメッセージをルーティングします。 |
|
[fanout] |
ブロードキャスト |
ルーティングキーを無視し、バインドされているすべてのキューにメッセージをルーティングします。 |
|
[headers] |
ヘッダーマッチング |
ルーティングキーの代わりに、ヘッダーのキーと値のペアをバインディングの属性と照合してメッセージをルーティングします。 |
|
[x-delayed-message] |
遅延配信 |
|
|
[x-consistent-hash] |
コンシステントハッシュ |
ルーティングキーまたはヘッダー値をハッシュ化し、コンシステントハッシュを使用してキュー間でメッセージを分散させます。 |
ステップ 4: キューの作成
キューは、コンシューマーがメッセージを取得するまでメッセージを保存します。
-
ナビゲーションペインで、[Queues] をクリックします。
-
[Queues] ページで、[vhost] ドロップダウンリストを展開し、[Change] から目的の vhost を選択して、[Create Queue] をクリックします。
-
[Create Queue] パネルで、次のパラメーターを設定し、[OK] をクリックします。
キューのパラメーター
|
パラメーター |
必須 |
説明 |
|
[Queue Name] |
はい |
キューの名前です。 |
|
[Auto Delete] |
いいえ |
最後のコンシューマーが購読を解除したときに、キューを自動的に削除します。デフォルト: [No]。 |
[Dead-letter Policy] をクリックして、オプションのパラメーターを設定します。
|
パラメーター |
説明 |
|
DeadLetterExchange |
デッドレターメッセージが配信されるエクスチェンジです。 |
|
DeadLetterRoutingKey |
デッドレターメッセージのルーティングキーです。 |
|
MessageTTL |
メッセージの Time-to-Live (TTL) (ミリ秒単位) です。消費されなかったメッセージは、TTL の期限が切れるとデッドレターになります。詳細については、「メッセージの TTL」をご参照ください。 |
キューの命名規則
-
[1.queue名には、アルファベット、数字、ダッシュ (-)、下線 (_)、英語ピリオド (.)、井戸番号 (#)、斜線 (/)、at記号 (@)、コロン (:) 、カンマ (,)、スペース ()、番号 (>) より大きく、長さは1 ~ 255文字に制限されます。]
-
長さは 1~255 文字です。
-
名前は作成後に変更できません。名前を変更するには、削除してから再作成してください。
-
amq.は予約済みのプレフィックスです。たとえば、amq.testは許可されません。
ステップ 5: バインディングの作成
バインディングはエクスチェンジとキューを接続し、メッセージがキューに到達するようにします。
-
[Queues] ページで目的のキューを見つけ、[操作] 列の [Details] をクリックします。
-
[Queue Details] ページで、[Bound as Destination] タブをクリックします。次に、[Add Binding] をクリックします。
-
[Add Binding] パネルで、[Source Exchange] と [Routing Key] のパラメーターを設定します。次に、[OK] をクリックします。
ソースエクスチェンジが x-consistent-hash タイプの場合、ルーティングキーはキューの重みを表します。重みは 1~20 の整数である必要があります。
次のステップ
関連ドキュメント
API を呼び出してリソースを作成することもできます。
-
CreateInstance:インスタンスを作成します。
-
ListInstances:インスタンスのエンドポイントを取得します。
-
CreateVirtualHost:vhost を作成します。
-
CreateExchange:エクスチェンジを作成します。
-
CreateQueue:キューを作成します。
-
CreateBinding:バインディングを作成します。
-
CreateAccount:インスタンスの静的なユーザー名とパスワードを作成します。
よくある質問
ApsaraMQ for RabbitMQ インスタンスの作成に失敗した場合はどうすればよいですか。
次のトラブルシューティング手順をお試しください。
-
Virtual Private Cloud (VPC) のセキュリティグループ設定の確認: VPC のセキュリティグループが正しく設定されていることを確認してください。インバウンドルールでポート 5672 (AMQP) とポート 5671 (AMQPS) のトラフィックが許可されていることを確認してください。
-
詳細なエラー情報の取得: ブラウザーの開発者ツール (F12 キー) を開き、[Network] タブで API のレスポンスを確認し、サーバーから返された特定のエラーコードやメッセージを特定してください。
-
RAM ユーザーの権限と vSwitch の要件: RAM ユーザーを使用している場合は、必要な権限が付与されていることを確認してください。インスタンスを作成する際は、少なくとも 2 つの vSwitch を選択してください。2 つ未満の vSwitch を選択すると、インスタンスの作成は失敗します。