インターフェース AfterRollbackProcessor<K,V>
- 型パラメーター:
K
- 鍵の型。V
- 値の型。
- すべての既知の実装クラス:
DefaultAfterRollbackProcessor
- 関数インターフェース:
- これは関数インターフェースであるため、ラムダ式またはメソッド参照の割り当てターゲットとして使用できます。
未処理のレコード (失敗したレコードを含む) が残っているリスナーコンテナーによって呼び出されます。実装は、次のポーリングでレコードが再フェッチされるように、必要なトピック / パーティションを探す必要があります。バッチリスナーと一緒に使用すると、レコードのバッチ全体が提供されます。
- 導入:
- 1.3.5
- 作成者:
- Gary Russell, Wang Zhiyang
メソッドのサマリー
修飾子と型メソッド説明default void
スレッド状態をクリアするオプションのメソッド。コンシューマースレッドが終了する直前に呼び出されます。default boolean
新しいトランザクションでprocess(List, Consumer, MessageListenerContainer, Exception, boolean, ContainerProperties.EOSMode)
を呼び出すには、true を返します。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) 残りのレコードを処理します。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) レコードのバッチ全体を処理します。
メソッドの詳細
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
- 関連事項: