インターフェース AfterRollbackProcessor<K,V>

型パラメーター:
K - 鍵の型。
V - 値の型。
すべての既知の実装クラス:
DefaultAfterRollbackProcessor
関数インターフェース:
これは関数インターフェースであるため、ラムダ式またはメソッド参照の割り当てターゲットとして使用できます。

@FunctionalInterfaceSE public interface AfterRollbackProcessor<K,V>
未処理のレコード (失敗したレコードを含む) が残っているリスナーコンテナーによって呼び出されます。実装は、次のポーリングでレコードが再フェッチされるように、必要なトピック / パーティションを探す必要があります。バッチリスナーと一緒に使用すると、レコードのバッチ全体が提供されます。
導入:
1.3.5
作成者:
Gary Russell, Wang Zhiyang
  • メソッドの詳細

    • process

      void process(ListSE<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>> records, org.apache.kafka.clients.consumer.Consumer<K,V> consumer, MessageListenerContainer container, ExceptionSE exception, boolean recoverable, ContainerProperties.EOSMode eosMode)
      残りのレコードを処理します。コンテナーが個々のレコードを処理している場合、Recoverable は true になります。これにより、プロセッサーは失敗したレコードを再シークするのではなく、回復 (スキップ) できます。バッチ内のどのレコードが失敗し続けるかを知っているのはリスナー自身だけであるため、これはバッチリスナーでは不可能です。重要: リスナーが単一のレコードで呼び出されたときにトランザクションで呼び出された場合、ゾンビフェンシングの課題を回避するために、トランザクション ID はコンテナーの group.id と失敗したレコードのトピック / パーティションに基づきます。通常、そのオフセットのみをトランザクションに送信する必要があります。その他の動作については、プロセスメソッドが独自のトランザクションを管理する必要があります。
      パラメーター:
      records - 記録。
      consumer - コンシューマー。
      container - コンテナー。
      exception - 例外
      recoverable - 回復可能なもの。
      eosMode - ContainerProperties.EOSMode
      導入:
      2.6.6
      関連事項:
    • processBatch

      default void processBatch(org.apache.kafka.clients.consumer.ConsumerRecords<K,V> records, ListSE<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>> recordList, org.apache.kafka.clients.consumer.Consumer<K,V> consumer, MessageListenerContainer container, ExceptionSE exception, boolean recoverable, ContainerProperties.EOSMode eosMode)
      レコードのバッチ全体を処理します。コンテナーがレコードのバッチ全体を処理している場合、Recoverable は true になります。
      パラメーター:
      records - 記録。
      recordList - レコードリスト。
      consumer - コンシューマー。
      container - コンテナー。
      exception - 例外
      recoverable - 回復可能なもの。
      eosMode - ContainerProperties.EOSMode
      導入:
      3.2
      関連事項:
    • clearThreadState

      default void clearThreadState()
      スレッド状態をクリアするオプションのメソッド。コンシューマースレッドが終了する直前に呼び出されます。
      導入:
      2.2
    • isProcessInTransaction

      default boolean isProcessInTransaction()
      新しいトランザクションで process(List, Consumer, MessageListenerContainer, Exception, boolean, ContainerProperties.EOSMode) を呼び出すには、true を返します。コンテナーは必要な動作を推測できないため、失敗したレコードをスキップすることを決定した場合、プロセッサーはトランザクションにオフセットを送信する責任があります。
      戻り値:
      トランザクションで実行する場合は true。デフォルトは false。
      導入:
      2.2.5
      関連事項: