コンシューマオフセットをリセットすると、コンシューマーがメッセージの消費を開始する位置が変更されます。コンシューマーに障害が発生した場合や、コンシューマーが不正なデータを消費した場合は、コンシューマオフセットをリセットして、特定のオフセットまたはパーティションオフセットに消費をロールバックできます。これにより、メッセージを再度消費できます。また、コンシューマオフセットを最新の位置に移動して、蓄積されたメッセージを一時的にスキップすることもできます。
前提条件
すべてのコンシューマークライアントを停止する必要があります。ApsaraMQ for Kafka は、オンラインでのコンシューマオフセットのリセットをサポートしていません。
コンシューマークライアントを停止した後、サーバーは ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG で指定された時間が経過した後にのみ、コンシューマーがオフラインであると見なします。デフォルト値は 10000 ms です。
背景情報
ApsaraMQ for Kafka は、コンシューマオフセットをリセットするための次のメソッドをサポートしています:
最新のオフセットから消費を開始する: ブローカーに蓄積されたメッセージをスキップし、コンシューマオフセットを最新の位置にリセットします。
特定の時点から消費を開始する: コンシューマオフセットを過去の時点にリセットします。この時点は、メッセージが Topic に保存された時間に基づきます。
パーティションオフセットでリセットする: メッセージの蓄積が一部のパーティションでのみ発生した場合、それらの特定のパーティションのコンシューマオフセットのみをリセットできます。これにより、他のパーティションで正しく処理されたメッセージを再消費するのを防ぎます。
蓄積されたメッセージは削除されません。コンシューマオフセットのみが変更されます。
手順
ApsaraMQ for Kafka コンソールにログインします。
概要 ページの リソースの分布 セクションで、管理する ApsaraMQ for Kafka インスタンスが存在するリージョンを選択します。
インスタンスリスト ページで、管理するインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、Group の管理 をクリックします。
Group の管理 ページで、対象の Group ID をクリックします。
[グループのコンシューマオフセットのリセット] ペインで、前提条件 を読み、リセットポリシーを設定します。
すべてのトピックをリセットする 設定を構成します。
はい をクリックして、すべての Topic のコンシューマオフセットをリセットします。
いいえ をクリックし、リセットする Topic の名前を Topic テキストボックスに入力します。
リセット方法 を設定します。
最新の位置から消費を開始する を選択して、コンシューマオフセットを最新の位置にリセットします。次に、[OK] をクリックします。
指定時間の位置時点から消費を開始する を選択します。時点 テキストボックスで、
アイコンをクリックして、グループがメッセージの消費を開始する時点を指定します。次に、[OK] をクリックします。パーティションによる消費位置のリセット を選択します。対象のパーティションの行で、消費オフセット テキストボックスに消費の開始オフセットとして使用する値を入力します。次に、[OK] をクリックします。
[メッセージ] ダイアログボックスで、情報を確認し、[OK] をクリックします。
参考
API を使用してコンシューマオフセットをリセットする方法の詳細については、「コンシューマグループのオフセットをリセットする」をご参照ください。
オフセットをリセットした後、消費ステータスを表示して最新のコンシューマオフセット情報を取得できます。詳細については、「消費ステータスを表示する」をご参照ください。