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

ApsaraMQ for RocketMQ:コンシューマオフセットのリセット

最終更新日:Mar 13, 2026

コンシューマオフセットをリセットすると、サブスクライバーの現在の消費位置が変更されます。コンシューマーが失敗したり、誤ったデータを消費したりした場合、コンシューマオフセットを以前の位置にロールバックして消費を再開できます。または、消費位置を最新オフセットに移動して、蓄積されたメッセージを一時的にスキップすることも可能です。

背景情報

ApsaraMQ for RocketMQ は、メッセージ消費の進捗を管理するためにコンシューマオフセットを使用します。コンシューマーがメッセージを処理した後も、メッセージはキューからすぐに削除されません。ApsaraMQ for RocketMQ は、各グループの消費レコードを保持します。このレコードはコンシューマオフセットとして知られており、グループ内のコンシューマーが特定のトピックに対して消費した最新メッセージのオフセットを指定します。

コンシューマークライアントがオフラインになり、その後オンラインに戻った場合、サーバー側に保存されている消費の進捗に基づいてメッセージの処理を再開します。

消費が異常であるか、現在のコンシューマオフセットが正しくない場合、コンシューマオフセットをリセットすることで消費の進捗を調整できます。

ApsaraMQ for RocketMQ は、以下の方法でコンシューマオフセットのリセットをサポートしています。

  • 最新地点で消費を始める

    特定のトピックでメッセージを処理するコンシューマーは、蓄積されたすべてのメッセージをスキップし、リセット操作後に送信された最新メッセージから消費を開始します。

  • 指定時点の同地点での消費開始

    • コンシューマーは、指定された時点に対応するコンシューマオフセットからメッセージを処理します。これらのメッセージが以前に消費されたかどうかは関係ありません。

    • 選択可能な時間範囲は、トピックに保存されている最も古いメッセージと最新のメッセージの作成時刻の間です。

    • 特定の時点のコンシューマオフセットにリセットすると、サーバー側は最も近い一致するコンシューマオフセットを自動的に見つけます。

シナリオ

  • メッセージ蓄積のクリア: ダウンストリームの消費システムのパフォーマンスが不十分であるか、消費速度が生成速度よりも遅い場合、多くのメッセージが蓄積される可能性があります。これらの蓄積されたメッセージを破棄できる場合、コンシューマオフセットを指定された位置にリセットできます。これにより、蓄積されたメッセージをバイパスし、ダウンストリームシステムの処理負荷を軽減できます。

  • 修正処理のためのバックトラッキング: 消費のビジネスロジックが異常で、メッセージが誤って処理された場合、これらのメッセージを再消費する必要があるかもしれません。これを行うには、コンシューマオフセットを過去の位置にリセットできます。これにより、消費のバックトラッキングが可能になります。

注意事項

  • コンシューマオフセットのリセットは、対象トピックの指定されたグループのコンシューマオフセットに適用されます。同じトピックをサブスクライブしている他のグループの消費の進捗には影響しません。

  • ブロードキャスト消費モードでは、コンシューマオフセットのリセットはサポートされていません。

  • ApsaraMQ for RocketMQ は、TCP プロトコルを使用するグループに対してのみコンシューマオフセットのリセットをサポートしており、HTTP プロトコルを使用するグループはサポートしていません。

  • コンシューマオフセットのリセット機能は、コンシューマーに可視なメッセージのみをリセットします。スケジュールされたメッセージやリトライ待ちのメッセージはリセットできません。

  • コンシューマーがオンラインの場合にのみ、コンシューマオフセットをリセットできます。

操作手順

  1. ApsaraMQ for RocketMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンス数 をクリックします。

  2. 上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。[インスタンス] ページで、管理するインスタンスの名前をクリックします。

  3. 左側のナビゲーションウィンドウで、グループ管理 をクリックします。次に、TCP プロトコル タブをクリックします。

  4. コンシューマオフセットをリセットするグループ ID を見つけます。操作 列で、詳細 をクリックし、ドロップダウンメニューから 消費地点をリセットする を選択します。

  5. 「コンシューマオフセットのリセット」パネルで、対象トピックとリセット方法を選択し、確定 をクリックします。

    警告

    最新地点で消費を始める を選択すると、指定したトピック内のグループ ID の蓄積されたメッセージがすべてクリアされます。この操作は約 2~3 分で有効になります。この操作を繰り返さないでください。この期間中、アプリケーション内のすべてのコンシューマーは 2~3 分間、消費を一時停止します。ビジネスが遅延の影響を受けやすい場合は、ご注意ください。

    • 最新地点で消費を始める: このオプションを選択すると、グループ内のコンシューマーは、指定されたトピック内のすべての蓄積されたメッセージをスキップし、最新メッセージから消費を開始します。

    • 指定時点の同地点での消費開始: このオプションを選択すると、時間選択コントロールが表示されます。時点を指定できます。コンシューマーは、これらのメッセージが以前に消費されたかどうかに関係なく、この時刻以降に送信されたメッセージの消費を開始します。

  6. プロンプト]ダイアログボックスで情報を確認し、確定 をクリックします。

よくある質問

両方の方法でコンシューマオフセットのリセットに失敗した場合はどうすればよいですか?

  1. クラスター消費を使用していることを確認します。ブロードキャスト消費モードでは、コンシューマオフセットのリセットはサポートされていません。

  2. コンシューマーがオンラインであることを確認します。コンシューマーがオンラインの場合にのみ、コンシューマオフセットをリセットできます。

  3. SDK バージョンを確認します。SDK バージョンが古い場合、この問題が発生する可能性があります。SDK を最新バージョンにアップグレードすることを推奨します。たとえば、Java 用 TCP クライアント SDK のバージョンは 1.8.0.Final 以降である必要があります。詳細については、「バージョンガイド」をご参照ください。

蓄積されたメッセージをスキップするためにコンシューマオフセットをリセットした後も、一部のメッセージがリセットされないのはなぜですか?

コンシューマオフセットのリセット機能は、リトライ状態のメッセージには適用されません。そのため、リセット後も少数のリトライ待ちのメッセージが配信される可能性があります。

コンシューマーがコンシューマオフセットをリセットすることで再消費できる最も古いメッセージは何ですか?

オフセットを指定した時点にリセットする場合、選択できる最も早い時刻は、トピック内で最も古いメッセージが保存された時刻に対応します。ApsaraMQ for RocketMQ 4.x シリーズのインスタンスは、メッセージを最大 3 日間保存します。3 日より古いメッセージはトピックから削除されます。

したがって、コンシューマーはコンシューマオフセットをリセットすることで、最大 3 日前のメッセージを再消費できます。

参考文献

コンソールに加えて、ApsaraMQ for RocketMQ では、API オペレーションを呼び出すことでコンシューマオフセットをリセットできます。

グループ ID のコンシューマーオフセットをリセットする