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

ApsaraMQ for RocketMQ:手順

最終更新日:Jun 23, 2026

Global Replicator は、ApsaraMQ for RocketMQ のクラスター間メッセージ同期を実現します。本ガイドでは、セットアップ、構成パラメータ、および 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 およびピーク受信 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 は、業務要件に基づいて調整できます。

Global Replicator タスクの作成

説明

初めて Global Replicator を使用すると、[Alibaba Cloud サービス承認 - RocketMQ Global Replicator] ダイアログボックスが表示されます。[確認] をクリックすると、サービスにリンクされたロール AliyunServiceRoleForRMQDisasterRecovery が自動的に作成され、これにより ApsaraMQ for RocketMQ の Global Replicator 機能が有効になります。詳細については、「サービスにリンクされたロール」をご参照ください。

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

  1. Log on to the ApsaraMQ for RocketMQ console.ApsaraMQ for RocketMQ コンソールにログインします。
  2. ナビゲーションペインで [Global Replicator] をクリックし、[タスクの作成] をクリックします。

  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/Destination 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 クラスターがデプロイされているリージョンを選択します。

    中国 (杭州)

    VPC

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

    vpc-bp17fapfdj0dwzjkd****

    [vSwitch]

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

    vsw-bp1gbjhj53hdjdkg****

    セキュリティグループ ID

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

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

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

      • ポリシー:許可

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

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

    sg-2ze4jlbqy2s40pc4****

    フィルター条件システム構成

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

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

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

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

    次のコードは、SQL-92 サブスクリプションフィルタリングの例を示しています。

    String sqlStr = "{Key} IS NOT NULL AND {Key} = {Source/Destination 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";
// ローカルで生成されたメッセージのみをサブスクライブします。
// ローカルで生成されたメッセージの場合、ローカルプロデューサーアプリケーションがこのキーを設定しないため、ユーザープロパティの Region キーは NULL です。
FilterExpression filterExpression = new FilterExpression("Region IS NULL", FilterExpressionType.SQL92);
simpleConsumer.subscribe(topic, filterExpression);
  • フィルタリングせずにトピック内のすべてのメッセージをサブスクライブします。

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

よくある質問

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

はい。Global Replicator タスクは 2 つのインスタンス間で構成されます。3 つのインスタンス間でデータを同期するには、インスタンスのペアごとに 1 つずつ、合計 3 つの個別のタスクを構成する必要があります。これにより、各インスタンスが完全なデータセットを持つようになります。

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

タグベースのフィルタリングまたは SQL フィルタリングのいずれかを使用できますが、両方を同時に使用することはできません。 Global Replicator はメッセージの送信元を追跡するためにカスタムプロパティを追加するため、ローカルメッセージとレプリケートされたメッセージを区別するには SQL フィルタリングを使用する必要があります。 したがって、タグベースのフィルタリングを使用するインスタンスを含め、すべてのインスタンスで SQL フィルタリングを使用することをお勧めします。 詳細については、「メッセージフィルタリング」をご参照ください。

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

ソースクラスターと宛先クラスターの両方が ApsaraMQ for RocketMQ インスタンスである場合、既存のデータフローを中断することなくタスクタイプを変更できます。 クラスターのいずれかが Apache RocketMQ クラスターである場合、一方向同期タスクを双方向同期タスクに変更することはできません。 タスクを削除し、新しいタスクを作成する必要があります。

Global Replicator はどのように課金されますか?

グローバルレプリケーターは、同期チャネルとして EventBridge を使用します。EventBridge の料金については、リンク先のドキュメントをご参照ください。同期により、ApsaraMQ for RocketMQ ソースインスタンスの読み取りリソースと、宛先インスタンスの書き込みリソースが消費されます。この負荷を処理するために、お使いの ApsaraMQ for RocketMQ インスタンスに十分なコンピューティング仕様があることを確認してください。

Global Replicator に ACL ベースの認証を構成しました。同期されたメッセージが受信されないのはなぜですか?

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

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

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