Class KafkaConsumerBackoffManager
- java.lang.Object
-
- org.springframework.kafka.listener.KafkaConsumerBackoffManager
-
- All Implemented Interfaces:
java.util.EventListener
,org.springframework.context.ApplicationListener<ListenerContainerPartitionIdleEvent>
public class KafkaConsumerBackoffManager extends java.lang.Object implements org.springframework.context.ApplicationListener<ListenerContainerPartitionIdleEvent>
A manager that backs off consumption for a given topic if the timestamp provided is not due. Use withSeekToCurrentErrorHandler
to guarantee that the message is read again after partition consumption is resumed (or seek it manually by other means).- Since:
- 2.7
- Author:
- Tomaz Fernandes
- See Also:
SeekToCurrentErrorHandler
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
KafkaConsumerBackoffManager.Context
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
INTERNAL_BACKOFF_CLOCK_BEAN_NAME
Internal Back Off Clock Bean Name.
-
Constructor Summary
Constructors Constructor Description KafkaConsumerBackoffManager(KafkaListenerEndpointRegistry registry, java.time.Clock clock)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addBackoff(KafkaConsumerBackoffManager.Context context, org.apache.kafka.common.TopicPartition topicPartition)
KafkaConsumerBackoffManager.Context
createContext(long dueTimestamp, java.lang.String listenerId, org.apache.kafka.common.TopicPartition topicPartition)
protected KafkaConsumerBackoffManager.Context
getBackoff(org.apache.kafka.common.TopicPartition topicPartition)
void
maybeBackoff(KafkaConsumerBackoffManager.Context context)
void
onApplicationEvent(ListenerContainerPartitionIdleEvent partitionIdleEvent)
protected void
removeBackoff(org.apache.kafka.common.TopicPartition topicPartition)
-
-
-
Field Detail
-
INTERNAL_BACKOFF_CLOCK_BEAN_NAME
public static final java.lang.String INTERNAL_BACKOFF_CLOCK_BEAN_NAME
Internal Back Off Clock Bean Name.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
KafkaConsumerBackoffManager
public KafkaConsumerBackoffManager(KafkaListenerEndpointRegistry registry, @Qualifier("internalBackOffClock") java.time.Clock clock)
-
-
Method Detail
-
maybeBackoff
public void maybeBackoff(KafkaConsumerBackoffManager.Context context)
-
onApplicationEvent
public void onApplicationEvent(ListenerContainerPartitionIdleEvent partitionIdleEvent)
- Specified by:
onApplicationEvent
in interfaceorg.springframework.context.ApplicationListener<ListenerContainerPartitionIdleEvent>
-
addBackoff
protected void addBackoff(KafkaConsumerBackoffManager.Context context, org.apache.kafka.common.TopicPartition topicPartition)
-
getBackoff
protected KafkaConsumerBackoffManager.Context getBackoff(org.apache.kafka.common.TopicPartition topicPartition)
-
removeBackoff
protected void removeBackoff(org.apache.kafka.common.TopicPartition topicPartition)
-
createContext
public KafkaConsumerBackoffManager.Context createContext(long dueTimestamp, java.lang.String listenerId, org.apache.kafka.common.TopicPartition topicPartition)
-
-