Message Queue for Apache RocketMQ サービスの安定性をさらに向上させるため、一部の 4.x シリーズインスタンスのアクセス方式を非リージョンエンドポイントからリージョンエンドポイントへアップグレードし、メッセージの送受信リンクの安定性を高めます。
廃止日時
非リージョンエンドポイントは、2026 年 5 月 15 日 00:00:00(UTC + 08:00)に廃止されます。サービス中断を防ぐため、この日時までにプロデューサーおよびコンシューマーのエンドポイント構成を更新してください。
影響範囲
対象範囲: ドメイン名にリージョン ID を含まないエンドポイント(例:
http://xxxx.mq-internal.aliyuncs.com:8080)を使用して Message Queue for Apache RocketMQ 4.x インスタンスにアクセスしているクライアントが対象です。影響内容: 廃止日以降、非リージョンエンドポイントを使用したメッセージ送受信リクエストはすべて失敗します。新しいリージョンエンドポイントはクロスリージョンアクセスをサポートしません。
移行手順
非リージョンエンドポイントを使用しているクライアントの特定
Message Queue for Apache RocketMQ コンソールにログインします。
左側のナビゲーションウィンドウで、[情報照会] をクリックします。
[非リージョンエンドポイントからのアクセス情報] セクションで、ご利用のリソースにアクセスしているインスタンス ID、トピック、クライアントの IP アドレスを確認します。
エンドポイント構成の更新
Message Queue for Apache RocketMQ 4.x インスタンスへのアクセスには、新しいリージョンエンドポイントを使用してください。リージョンエンドポイントの取得手順は以下のとおりです。
Message Queue for Apache RocketMQ コンソールにログインします。
左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーでリージョン(例:中国 (杭州))を選択し、ターゲットインスタンスの名前をクリックします。
インスタンスの詳細 ページで、エンドポイント タブをクリックします。
エンドポイント タブの TCP エンドポイント セクションで、ネットワーク が イントラネットアクセス となっているエンドポイントを確認します。
このエンドポイントをプロデューサーおよびコンシューマーのコードに設定します。
Java ons-client SDK
必要なクライアントバージョン:1.8.7.4.Final 以降
ONSAddr パラメーターを NAMESRV_ADDR に変更し、エンドポイントの値を更新します。
// Before: properties.put(PropertyKeyConst.ONSAddr, "http://xxxx.mq-internal.aliyuncs.com:8080"); // After: properties.put(PropertyKeyConst.NAMESRV_ADDR, "http://xxxx.cn-hangzhou.mq-internal.aliyuncs.com:8080");
Java オープンソース RocketMQ SDK
必要なクライアントバージョン:4.5.2 以降
パラメーターを更新します。
// For a producer, update the nameserver address before the producer starts. // Before: producer.setNamesrvAddr("http://xxxx.mq-internal.aliyuncs.com:8080"); // After: producer.setNamesrvAddr("http://xxxx.cn-hangzhou.mq-internal.aliyuncs.com:8080"); // For a consumer, update the nameserver address before the consumer starts. // Before: consumer.setNamesrvAddr("http://xxxx.mq-internal.aliyuncs.com:8080"); // After: consumer.setNamesrvAddr("http://xxxx.cn-hangzhou.mq-internal.aliyuncs.com:8080");
C/C++ SDK
必要なクライアントバージョン:1.1.0 以降
エンドポイントパラメーターを更新します。ONSFactory.getInstance() を使用して初期化する場合は、ONSFactoryProperty 内のエンドポイント設定を確認してください。
ONSAddr パラメーターを使用している場合、NAMESRV_ADDR に変更し、エンドポイントの値を更新します。
// Before: factoryInfo.setFactoryProperty(ONSFactoryProperty::ONSAddr, "http://XXX.mq-internal.aliyuncs.com:8080"); // After: factoryInfo.setFactoryProperty(ONSFactoryProperty::NAMESRV_ADDR, "http://MQ_INST_XXXXXXXXXXX.cn-hangzhou.mq-internal.aliyuncs.com:8080");すでに NAMESRV_ADDR パラメーターを使用している場合、エンドポイントの値のみを更新します。
// Before: factoryInfo.setFactoryProperty(ONSFactoryProperty::NAMESRV_ADDR, "http://MQ_INST_XXXXXXXXXXX.mq-internal.aliyuncs.com:8080"); // After: factoryInfo.setFactoryProperty(ONSFactoryProperty::NAMESRV_ADDR, "http://MQ_INST_XXXXXXXXXXX.cn-hangzhou.mq-internal.aliyuncs.com:8080");
.NET SDK
必要なクライアントバージョン:1.1.0 以降
エンドポイントパラメーターを更新します。ONSFactory.getInstance() を使用して初期化する場合は、ONSFactoryProperty 内のエンドポイント設定を確認してください。
ONSAddr パラメーターを使用している場合、NAMESRV_ADDR に変更し、エンドポイントの値を更新します。
// Before: factoryInfo.setFactoryProperty(ONSFactoryProperty::ONSAddr, "http://XXX.mq-internal.aliyuncs.com:8080"); // After: factoryInfo.setFactoryProperty(ONSFactoryProperty::NAMESRV_ADDR, "http://MQ_INST_XXXXXXXXXXX.cn-hangzhou.mq-internal.aliyuncs.com:8080");すでに NAMESRV_ADDR パラメーターを使用している場合、エンドポイントの値のみを更新します。
// Before: factoryInfo.setFactoryProperty(ONSFactoryProperty::NAMESRV_ADDR, "http://MQ_INST_XXXXXXXXXXX.mq-internal.aliyuncs.com:8080"); // After: factoryInfo.setFactoryProperty(ONSFactoryProperty::NAMESRV_ADDR, "http://MQ_INST_XXXXXXXXXXX.cn-hangzhou.mq-internal.aliyuncs.com:8080");
背景情報
TCP プロトコルを使用して Message Queue for Apache RocketMQ SDK でメッセージを送受信するには、実際のリソース情報に基づいて対応するパラメーターを構成する必要があります。以下のパラメーターに対応するリソースは、すべて同一リージョン内に存在している必要があります。
GROUP_ID:Message Queue for Apache RocketMQ コンソールで作成したグループ ID
Topic:Message Queue for Apache RocketMQ コンソールで作成したトピック
NAMESRV_ADDR:Message Queue for Apache RocketMQ コンソールの [インスタンス詳細] ページで取得したエンドポイント
たとえば、中国 (杭州) リージョンに Message Queue for Apache RocketMQ のインスタンス A があり、同じリージョン内のクライアント A 用にトピック A およびグループ ID A を作成したとします。また、中国 (深セン) リージョンに別の Message Queue for Apache RocketMQ のインスタンス B があり、そのリージョン内のクライアント B 用にトピック B およびグループ ID B を作成したとします。この場合、以下のルールに注意してください。
中国 (杭州) リージョンのグループ ID A に属するクライアント A のみが、トピック A へのメッセージ送信またはトピック A からのメッセージ受信が可能です。
中国 (深セン) リージョンのグループ ID B に属するクライアント B のみが、トピック B へのメッセージ送信またはトピック B からのメッセージ受信が可能です。
以下の図はこの関係を示しています。