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

ApsaraMQ for RocketMQ:手順

最終更新日:Aug 25, 2026

このトピックでは、グローバルメッセージレプリケーション機能をすぐに理解して使用できるよう、操作ガイド、ページパラメーター、よくある質問 (FAQ) について説明します。

前提条件

ApsaraMQ for RocketMQ (クラウドメッセージキュー) インスタンスが作成されている必要があります。バージョン要件は次のとおりです。

  • ApsaraMQ for RocketMQ 4.0 シリーズインスタンス。

    説明

    4.0 シリーズインスタンスの Standard Edition は、一方向同期のみをサポートします。

  • ApsaraMQ for RocketMQ 5.0 シリーズインスタンス。

このトピックでは、ソースクラスターとターゲットクラスターの両方が ApsaraMQ for RocketMQ 5.0 シリーズインスタンスである例を説明します。

仕様の推奨事項

グローバルメッセージレプリケーションを使用すると、トピックマッピングを設定した後にメッセージ同期により、インスタンスに TPS のオーバーヘッドが発生します。したがって、同期タスクのソースとターゲットの ApsaraMQ for RocketMQ インスタンスの送信および受信 TPS のピーク制限を考慮する必要があります。

推奨仕様:

たとえば、同期がない場合、ApsaraMQ for RocketMQ インスタンスの送信 TPS のピークは 10,000 メッセージ/秒、受信 TPS のピークは 10,000 メッセージ/秒です。

ソースインスタンスとターゲットインスタンスの TPS は、次のように設定することを推奨します。

タスクタイプ

ソースインスタンス

ターゲットインスタンス

送受信 TPS のピーク制限 (メッセージ/秒)

送信 TPS のピーク (メッセージ/秒)

受信 TPS のピーク (メッセージ/秒)

送受信 TPS のピーク制限 (メッセージ/秒)

送信 TPS のピーク (メッセージ/秒)

受信 TPS のピーク (メッセージ/秒)

一方向同期

30,000

10,000

20,000

20,000

10,000

10,000

双方向同期

40,000

20,000

20,000

40,000

20,000

20,000

説明
  • インスタンスの送受信 TPS のピーク制限は、インスタンスの詳細 ページで確認できます。異なる仕様のインスタンスの TPS 制限については、「仕様の制限」をご参照ください。

  • ビジネス上の要件に応じて、ターゲットインスタンスの受信 TPS のピークを調整できます。

グローバルメッセージレプリケーションタスクの作成

説明

初めてグローバルメッセージレプリケーションを使用すると、[Alibaba Cloud Service Authorization - RocketMQ Global Message Replication] ダイアログボックスが表示されます。[確認] をクリックすると、ターゲットサービスのサービスリンクロール AliyunServiceRoleForRMQDisasterRecovery が自動的に作成され、ApsaraMQ for RocketMQ でグローバルメッセージレプリケーション機能を利用できるようになります。詳細については、「サービスリンクロール」をご参照ください。

ステップ 1:タスクの作成

  1. ApsaraMQ for RocketMQ コンソールにログインします。

  2. 左側メニューで、[グローバルメッセージレプリケーション] をクリックし、[タスクの作成] をクリックします。

  3. [タスクの作成] ページで、次の情報を入力します。主な設定項目は以下のとおりです。残りのパラメーターは必要に応じて設定します。その後、[作成] をクリックします。

    ページの上部で、[タスク名] をrocket-test に設定し、タスクタイプ に一方向バックアップ:送信元クラスターのデータが、送信先クラスターに同期されます。 を選択して、必要に応じて[タスクの説明] を入力します。 左ペインと右ペインでソースクラスターとターゲットクラスターを設定します。 ペイン間の矢印は同期方向を示します。

    ソースクラスターとターゲットクラスターのクラスタータイプごとの設定については、次の表をご参照ください。

    ApsaraMQ for RocketMQ

    パラメーター

    説明

    例

    バージョン

    ApsaraMQ for RocketMQ インスタンスのバージョンを選択します。

    • 4.0 シリーズインスタンス

    • 5.0 シリーズインスタンス

    5.0 シリーズインスタンス

    [リージョン]

    ApsaraMQ for RocketMQ インスタンスのリージョンを選択します。

    中国 (杭州)

    [インスタンス]

    ApsaraMQ for RocketMQ インスタンスを選択します。

    rmq-cn-778***

    認証モード

    • 設定不要

    • ACL ベースの認証

    ACL ベースの認証

    ユーザー名

    ユーザー名を選択します。

    yS8x01****

    セキュリティグループ ID

    ApsaraMQ for RocketMQ インスタンスをホストする ECS インスタンスのセキュリティグループ。このパラメーターは、[バージョン] を 5.0 シリーズインスタンスに設定する場合に必要です。

    • インバウンドルール:要件なし。

    • アウトバウンドルール:

      • ポリシー:許可

      • プロトコル:カスタム TCP

      • 宛先:CIDR ブロックには、クラスターの vSwitch のすべての CIDR ブロックを含める必要があります。ポート範囲には 8080 および 8081 を含める必要があります。

    sg-2ze4jlbqy2s40pc4****

    フィルター条件のシステム設定

    (オプション) メッセージにカスタム属性 (ユーザープロパティ) を追加できます。これにより、コンシューマーは SQL-92 構文を使用したサブスクリプションポリシーに基づいてメッセージをフィルタリングできます。

    • キー:ユーザープロパティのキー。

    • ソースクラスターの値:ソースクラスターからのメッセージに追加されるユーザープロパティの値。

    • ターゲットクラスターの値:ターゲットクラスターからのメッセージに追加されるユーザープロパティの値。

    次のコードは、SQL-92 サブスクリプションフィルタリングの例です。

    String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Target Cluster Value}";
    consumer.subscribe(MqConfig.TOPIC, 
        MessageSelector.bySql(sqlStr));

    なし

    Apache RocketMQ

    パラメーター

    説明

    例

    アクセスポイント

    アクセスポイントの形式は {ドメイン名/IP}:{ポート番号} です。

    XX.XX.XX.XX:8080

    認証モード

    • 設定不要

    • ACL ベースの認証

    ACL ベースの認証

    ユーザー名

    ビジネス要件に基づいてユーザー名を入力します。

    yS8x01****

    パスワード

    ビジネス要件に基づいてパスワードを入力します。

    F17R4to****

    ネットワークタイプ

    • パブリックネットワーク

    • VPC

    パブリックネットワーク

    [リージョン]

    このパラメーターは、[ネットワークタイプ] を VPC に設定した場合に必要です。Apache RocketMQ がデプロイされている ECS インスタンスのリージョンを選択します。

    中国 (杭州)

    VPC

    このパラメーターは、[ネットワークタイプ] を VPC に設定した場合に必要です。Apache RocketMQ がデプロイされている ECS インスタンスの VPC を選択します。

    vpc-bp17fapfdj0dwzjkd****

    [vSwitch]

    このパラメーターは、[ネットワークタイプ] を VPC に設定した場合に必要です。Apache RocketMQ がデプロイされている ECS インスタンスの vSwitch を選択します。

    vsw-bp1gbjhj53hdjdkg****

    セキュリティグループ ID

    このパラメーターは、[ネットワークタイプ] を VPC に設定した場合に必要です。Apache RocketMQ がデプロイされている ECS インスタンスのセキュリティグループを選択します。

    • インバウンドルール:要件なし。

    • アウトバウンドルール:

      • ポリシー:許可

      • プロトコル:カスタム TCP

      • 宛先:CIDR ブロックには、すべての Apache RocketMQ ノードの CIDR ブロックを含める必要があります。ポート範囲には、すべての Apache RocketMQ ノードのサービスポートを含める必要があります。デフォルトのポートは 9876、10911、10909 です。NameServer またはブローカーのポートを変更した場合は、変更後のポートを指定する必要があります。

    sg-2ze4jlbqy2s40pc4****

    フィルター条件のシステム設定

    (オプション) メッセージにカスタム属性 (ユーザープロパティ) を追加できます。これにより、コンシューマーは SQL-92 構文を使用したサブスクリプションポリシーに基づいてメッセージをフィルタリングできます。

    • キー:ユーザープロパティのキー。

    • ソースクラスターの値:ソースクラスターからのメッセージに追加されるユーザープロパティの値。

    • ターゲットクラスターの値:ターゲットクラスターからのメッセージに追加されるユーザープロパティの値。

    次のコードは、SQL-92 サブスクリプションフィルタリングの例です。

    String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Target Cluster Value}";
    consumer.subscribe(MqConfig.TOPIC, 
        MessageSelector.bySql(sqlStr));

    なし

ステップ 2:トピックマッピングの設定

  1. [タスクの基本情報] ページで、左側メニューにある [メッセージ同期タスク] をクリックします。

  2. [一括マッピング] または [マッピングの追加] をクリックして、ダイアログボックスで同期するトピックのマッピングを設定します。

    • 一括マッピング:必要なトピックマッピングを設定して選択し、[OK] をクリックします。

    • マッピングの追加:必要なトピックマッピングを設定し、[OK] をクリックします。

    説明
    • ソースクラスターが Apache RocketMQ クラスターである場合、メッセージ同期用のグループを指定する必要があります。業務で既に使用中のグループは使用しないでください。

    • メッセージ同期は、トピックマッピングを設定した後にのみ開始します。

ステップ 3:(オプション) コンシューマー進捗同期の有効化

コンシューマー進捗同期を有効にすると、トピックを消費するグループの現在の消費進捗をターゲットクラスターに同期できます。詳細については、「コンシューマー進捗同期」をご参照ください。

コンシューマークライアントの設定

たとえば、ソースクラスターが中国 (上海) リージョンの ApsaraMQ for RocketMQ インスタンスで、ターゲットクラスターが中国 (杭州) リージョンの ApsaraMQ for RocketMQ インスタンスである双方向同期タスクを設定します。このとき、フィルター条件のキーを Region に、ソースクラスターの値を Shanghai に、ターゲットクラスターの値を Hangzhou に設定します。

通常、上海のコンシューマークライアントは上海リージョンのデータのみを消費し、杭州のデータは消費しません。したがって、単一のカスタム属性によるマッチングで十分です。詳細については、「イベントパターン」をご参照ください。

  • メッセージをサブスクライブし、単一のカスタム属性に基づいてマッチングします。

String topic = "topic";
// リモートリージョンのメッセージのみをサブスクライブします。
FilterExpression filterExpression = new FilterExpression("Region IS NOT NULL", FilterExpressionType.SQL92);
// ローカルで生成されたメッセージでは、ローカルのプロデューサーアプリケーションがこのキーを設定しないため、ユーザープロパティの Region キーは NULL になります。
simpleConsumer.subscribe(topic, filterExpression);
  • フィルタリングなしでトピック内のすべてのメッセージをサブスクライブします。

String topic = "topic";
// すべてのメッセージをサブスクライブします。
FilterExpression filterExpression = new FilterExpression("True", FilterExpressionType.SQL92);
simpleConsumer.subscribe(topic, filterExpression);

よくある質問

3 つのインスタンス間でデータを同期できますか?

はい。グローバルメッセージレプリケーションタスクは 2 つのインスタンス間で設定されます。3 つのインスタンス間でデータを同期するには、3 つのタスクを設定する必要があります。これにより、各インスタンスが完全なデータセットを保持できるようになります。

双方向同期設定のインスタンスでタグベースのフィルタリングを使用できますか?

タグベースのフィルタリングまたは SQL フィルタリングのいずれかを使用できますが、両方は使用できません。コンシューマーアプリケーションは SQL フィルタリングを使用してデータをフィルタリングする必要があるため、タグベースのフィルタリングを使用するインスタンスでは、代わりに SQL フィルタリングを使用してメッセージをフィルタリングすることを推奨します。詳細については、「メッセージフィルタリング」をご参照ください。

既存の一方向同期タスクを双方向タスクに変更できますか?

ソースクラスターとターゲットクラスターの両方が ApsaraMQ for RocketMQ インスタンスである場合、変更でき、既存の一方向タスクの実行に影響しません。クラスターのいずれかがオープンソースの Apache RocketMQ クラスターである場合、一方向同期タスクを双方向同期タスクに変更することはできません。タスクを削除して再作成する必要がある場合があります。

グローバルメッセージレプリケーションの課金方法について教えてください。

グローバルメッセージレプリケーションの同期チャネルは EventBridge に依存します。EventBridge の料金については、「EventBridge」をご参照ください。グローバルメッセージレプリケーションがメッセージデータを同期する際、ソースの ApsaraMQ for RocketMQ インスタンスの読み取り性能とターゲットインスタンスの書き込み性能を使用します。さらに、ApsaraMQ for RocketMQ のコンピューティング仕様を評価する必要があります。

グローバルメッセージレプリケーションに ACL ベースの認証を設定しましたが、同期されたメッセージが受信されません。なぜですか?

グローバルメッセージレプリケーションで同期タスクを設定した後、同期するトピックを指定する必要があります。システムは、データを同期するためにトピックごとに削除不可能なシステムグループを作成します。このグループは、同期タスクが削除された場合にのみ削除されます。ACL ベースの認証を有効にする場合は、選択した ACL ユーザーにトピックに対する読み取りおよび書き込み権限と、グループに対する読み取り権限を付与する必要があります。インスタンスの アクセス制御 ページで、ユーザーを選択し、[リソース名] をワイルドカード文字 (*) に設定してアカウントに完全な権限を付与します。これにより、設定が簡素化されます。

タスクを一時停止してから再開した場合、同期は中断したところから続行されますか?

はい。再開後、同期は最新の確認済みオフセットに続くメッセージから続行します。一時停止期間が ApsaraMQ for RocketMQ インスタンスのメッセージ保持期間を超えないようにしてください。