オープンソース RabbitMQ の Shovel プラグインを使用するのと同じ方法で、ApsaraMQ for RabbitMQ が提供するグローバルメッセージルーティング機能を使用できます。この機能を使用して、キューから別のキューまたはエクスチェンジにメッセージを転送できます。メッセージソースとメッセージデスティネーションは、同じリージョンまたは異なるリージョンの異なるインスタンスまたは vhost に属することができます。
使用上の注意
追加料金が発生します。グローバルメッセージルーティング機能に対して課金される合計料金は、次の式を使用して計算されます。合計料金 = ApsaraMQ for RabbitMQ で発生した料金 + EventBridge で発生した転送料金 + クラウドエンタープライズネットワーク(CEN)で発生したトラフィック料金。トラフィック料金は、リージョンをまたいでメッセージを転送する場合にのみ発生します。ApsaraMQ for RabbitMQ の課金については、サブスクリプションインスタンスの課金をご参照ください。EventBridge の課金については、課金をご参照ください。CEN の課金については、課金ルールをご参照ください。
リレーメッセージルーティングはサポートされていません。インスタンス A からインスタンス C にメッセージを転送する場合、インスタンス A からインスタンス C へのルートを作成する必要があります。インスタンス A からインスタンス B、さらにインスタンス C にメッセージを転送することはできません。
同期中に遅延が発生する場合があります。メッセージ同期の際、同期されるメッセージの数と限られたネットワーク帯域幅が原因で遅延が発生する可能性があります。
メッセージサイズに制限があります: デスティネーションインスタンスに指定された最大メッセージサイズが、ソースインスタンスに指定された最大メッセージサイズ以上であることを確認してください。デスティネーションインスタンスに指定された最大メッセージサイズが、ソースインスタンスに指定された最大メッセージサイズよりも小さい場合、サイズがデスティネーションインスタンスに指定された最大メッセージサイズを超えるメッセージはルーティングに失敗し、失われます。
前提条件
ApsaraMQ for RabbitMQ
ソースインスタンス、vhost、エクスチェンジ、およびキューが作成され、使用可能です。デスティネーションインスタンス、vhost、エクスチェンジ、およびキューが作成され、使用可能です。詳細については、次のトピックをご参照ください。
EventBridge
EventBridge がアクティブ化されており、必要な権限が Resource Access Management (RAM) ユーザーに付与されています。詳細については、EventBridge のアクティブ化と RAM ユーザーへの権限の付与をご参照ください。
グローバルメッセージルーティングタスクの作成
ApsaraMQ for RabbitMQ コンソール にログオンします。左側のナビゲーションペインで、グローバルメッセージルーティング をクリックします。
グローバルメッセージルーティング ページで、タスクの作成 をクリックします。
(オプション) [alibaba Cloud サービス認証 - Message Queue Rabbitmq] ダイアログボックスで、メッセージを読み、[OK] をクリックします。
グローバルメッセージルーティングタスクを初めて作成すると、次のサービスリンクロールが自動的に作成されます: AliyunServiceRoleForEventBridgeSourceRabbitMQ および AliyunServiceRoleForEventBridgeSendToRabbitMQ。詳細については、サービスリンクロールをご参照ください。
説明EventBridge は、AliyunServiceRoleForEventBridgeSourceRabbitMQ ロールを引き受けて、ソースインスタンスから送信されたメッセージを受信します。
EventBridge は、AliyunServiceRoleForEventBridgeSendToRabbitMQ ロールを引き受けて、デスティネーションインスタンスにメッセージを転送します。
メッセージルーティングタスクの作成 ページで、メッセージルーティングタスクのソースインスタンスとデスティネーションインスタンスに関する情報を構成します。
基本情報 手順で、タスク名と説明を指定し、次へ をクリックします。
ソースとターゲット 手順で、メッセージルーティングタスクのソースインスタンスとデスティネーションインスタンスに関する情報を構成し、次へ をクリックします。
パラメーター
説明
例
ソース情報
プロダクトタイプ
メッセージをルーティングするインスタンスのタイプ。このパラメーターは自動的に Message Queue for RabbitMQ に設定されます。
Message Queue for RabbitMQ
リージョン
ソースインスタンスがデプロイされているリージョン。
中国 (深圳)
インスタンス
ソースインスタンスの ID。
amqp-cn-i7m2a8bq****
vhost
ソースインスタンスに作成された vhost。
test-001
Queue
ソースインスタンスに作成されたキュー。
test-001-q
ターゲット情報
プロダクトタイプ
メッセージのルーティング先のインスタンスのタイプ。このパラメーターは自動的に Message Queue for RabbitMQ に設定されます。
Message Queue for RabbitMQ
リージョン
宛先インスタンスがデプロイされているリージョン。
中国 (深圳)
インスタンス
宛先インスタンスの ID。
amqp-cn-7pp2a85q****
vhost
宛先インスタンスに作成された vhost。
test-routing
ターゲットタイプ
メッセージの転送先のタイプ。有効な値:
キュー: メッセージは、宛先インスタンスの 1 つ以上のキューに転送されます。
エクスチェンジ: メッセージは、宛先インスタンスの 1 つ以上のエクスチェンジに転送されます。
説明ターゲットタイプ パラメーターを [エクスチェンジ] に設定する場合は、宛先エクスチェンジがキューにバインドされていることを確認してください。そうでない場合、宛先エクスチェンジに転送されたメッセージは、メッセージを格納するために使用できるキューがないため、失われます。
test-routing-ex
Routing Key
メッセージルーティングに使用されるルーティングキー。このパラメーターは、ターゲットタイプ パラメーターを エクスチェンジ に設定した場合にのみ使用できます。有効な値:
設定しない: 既存のルーティングキーを使用して、メッセージを宛先エクスチェンジに転送します。
設定: 構成されたルーティングキーを使用して、メッセージを宛先エクスチェンジに転送します。
test
作成して開始 手順で、メッセージルーティングタスクの構成を確認し、作成して開始 をクリックします。
メッセージルーティングタスクが作成されると、グローバルメッセージルーティング ページでタスクを表示できます。メッセージルーティングタスクのステータスは、ステータス 列に 実行中 として表示されます。
関連情報
オープンソース RabbitMQ の Shovel プラグインについては、Shovel Plugin をご参照ください。