インターフェース ShareAcknowledgment


public interface ShareAcknowledgment
共有グループを使用するときにレコードの配信を確認するためのハンドル。

共有グループを使用すると、複数のコンシューマーが同じパーティションのレコードを処理できる協調消費が可能になります。処理結果を示すには、各レコードを明示的に確認応答する必要があります。

確認の種類:

  • ACCEPT - レコードは正常に処理されました
  • RELEASE - 一時的な障害、再試行可能にする
  • REJECT - 永久的な失敗です。再試行しないでください

このインターフェースは、明示的な確認応答モード(share.acknowledgement.mode=explicit)を使用する場合にのみ適用されます。暗黙的なモードでは、レコードは自動的に ACCEPT として確認応答されます。

メモ: 確認応答はコミット操作とは別です。レコードを確認応答した後、commitSync() または commitAsync() を使用してブローカーへの確認応答を永続化します。

導入:
4.0
作成者:
Soby Chacko
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    レコードが正常に処理されたことを確認します。
    void
    永続的な障害のため、レコードを拒否します。
    void
    一時的な障害による再配信のためにレコードを解放します。
  • メソッドの詳細

    • acknowledge

      void acknowledge()
      レコードが正常に処理されたことを確認します。

      レコードは完了としてマークされ、再配信されません。確認応答は以下の場合にコミットされます。

      • 次の poll() は (batched with fetch)
      • commitSync() または commitAsync() が明示的に呼び出される
      • コンシューマーは閉鎖されている
      例外:
      IllegalStateExceptionSE - if the record has already been acknowledged
      導入:
      4.0
    • release

      void release()
      一時的な障害による再配信のためにレコードを解放します。

      The record will be made available for another delivery attempt. The acknowledgment will be committed when:

      • 次の poll() は (batched with fetch)
      • commitSync() または commitAsync() が明示的に呼び出される
      • コンシューマーは閉鎖されている
      例外:
      IllegalStateExceptionSE - if the record has already been acknowledged
    • reject

      void reject()
      永続的な障害のため、レコードを拒否します。

      The record will not be delivered again and will be archived. The acknowledgment will be committed when:

      • 次の poll() は (batched with fetch)
      • commitSync() または commitAsync() が明示的に呼び出される
      • コンシューマーは閉鎖されている
      例外:
      IllegalStateExceptionSE - if the record has already been acknowledged