Class SeekUtils
java.lang.Object
org.springframework.kafka.listener.SeekUtils
Seek utilities.
- Since:
- 2.2
- Author:
- Gary Russell, Francois Rosiere
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final FixedBackOffThe default back off - aFixedBackOffwith 0 interval andDEFAULT_MAX_FAILURES- 1 retry attempts.static final intThe number of times a topic/partition/offset can fail before being rejected. -
Method Summary
Modifier and TypeMethodDescriptionstatic booleandoSeeks(List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, Exception exception, boolean recoverable, BiPredicate<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, Exception> skipper, LogAccessor logger) Seek records to earliest position, optionally skipping the first.static booleandoSeeks(List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, Exception exception, boolean recoverable, RecoveryStrategy recovery, MessageListenerContainer container, LogAccessor logger) Seek records to earliest position, optionally skipping the first.static booleanisBackoffException(Exception exception) Return true if the exception is aKafkaBackoffException.static voidseekOrRecover(Exception thrownException, List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, boolean commitRecovered, BiPredicate<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, Exception> skipPredicate, LogAccessor logger, KafkaException.Level level) Seek the remaining records, optionally recovering the first.static voidseekOrRecover(Exception thrownException, List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, boolean commitRecovered, RecoveryStrategy recovery, LogAccessor logger, KafkaException.Level level) Seek the remaining records, optionally recovering the first.static voidseekPartitions(org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, Map<org.apache.kafka.common.TopicPartition, Long> partitions, LogAccessor logger) Perform seek operations on each partition.
-
Field Details
-
DEFAULT_MAX_FAILURES
public static final int DEFAULT_MAX_FAILURESThe number of times a topic/partition/offset can fail before being rejected.- See Also:
-
DEFAULT_BACK_OFF
The default back off - aFixedBackOffwith 0 interval andDEFAULT_MAX_FAILURES- 1 retry attempts.
-
-
Method Details
-
doSeeks
public static boolean doSeeks(List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, Exception exception, boolean recoverable, BiPredicate<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, Exception> skipper, LogAccessor logger) Seek records to earliest position, optionally skipping the first.- Parameters:
records- the records.consumer- the consumer.exception- the exceptionrecoverable- true if skipping the first record is allowed.skipper- function to determine whether or not to skip seeking the first.logger- aLogAccessorfor seek errors.- Returns:
- true if the failed record was skipped.
-
doSeeks
public static boolean doSeeks(List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, Exception exception, boolean recoverable, RecoveryStrategy recovery, @Nullable MessageListenerContainer container, LogAccessor logger) Seek records to earliest position, optionally skipping the first.- Parameters:
records- the records.consumer- the consumer.exception- the exceptionrecoverable- true if skipping the first record is allowed.recovery- theRecoveryStrategy.container- the container, or parent if a child.logger- aLogAccessorfor seek errors.- Returns:
- true if the failed record was skipped.
-
seekPartitions
public static void seekPartitions(org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, Map<org.apache.kafka.common.TopicPartition, Long> partitions, LogAccessor logger) Perform seek operations on each partition.- Parameters:
consumer- the consumer.partitions- the partitions.logger- the logger.- Since:
- 2.5
-
seekOrRecover
public static void seekOrRecover(Exception thrownException, List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, boolean commitRecovered, BiPredicate<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>, Exception> skipPredicate, LogAccessor logger, KafkaException.Level level) Seek the remaining records, optionally recovering the first.- Parameters:
thrownException- the exception.records- the remaining records.consumer- the consumer.container- the container.commitRecovered- true to commit the recovererd record offset.skipPredicate- the skip predicate.logger- the logger.level- the log level for the thrown exception after handling.- Since:
- 2.5
-
seekOrRecover
public static void seekOrRecover(Exception thrownException, @Nullable List<org.apache.kafka.clients.consumer.ConsumerRecord<?, ?>> records, org.apache.kafka.clients.consumer.Consumer<?, ?> consumer, MessageListenerContainer container, boolean commitRecovered, RecoveryStrategy recovery, LogAccessor logger, KafkaException.Level level) Seek the remaining records, optionally recovering the first.- Parameters:
thrownException- the exception.records- the remaining records.consumer- the consumer.container- the container.commitRecovered- true to commit the recovererd record offset.recovery- theRecoveryStrategy.logger- the logger.level- the log level for the thrown exception after handling.- Since:
- 2.7
-
isBackoffException
Return true if the exception is aKafkaBackoffException.- Parameters:
exception- the exception.- Returns:
- true if it's a back off.
- Since:
- 2.7
-