Class KafkaBackoffAwareMessageListenerAdapter<K,V>
java.lang.Object
org.springframework.kafka.listener.adapter.AbstractDelegatingMessageListenerAdapter<MessageListener<K,V>>
org.springframework.kafka.listener.adapter.KafkaBackoffAwareMessageListenerAdapter<K,V>
- Type Parameters:
K- the record key type.V- the record value type.
- All Implemented Interfaces:
AcknowledgingConsumerAwareMessageListener<K,V>, ConsumerSeekAware, DelegatingMessageListener<MessageListener<K, V>>, GenericMessageListener<org.apache.kafka.clients.consumer.ConsumerRecord<K, V>>, MessageListener<K, V>
public class KafkaBackoffAwareMessageListenerAdapter<K,V>
extends AbstractDelegatingMessageListenerAdapter<MessageListener<K,V>>
implements AcknowledgingConsumerAwareMessageListener<K,V>
A
AcknowledgingConsumerAwareMessageListener implementation that looks for a
backoff dueTimestamp header and invokes a KafkaConsumerBackoffManager instance
that will back off if necessary.- Since:
- 2.7
-
Nested Class Summary
Nested classes/interfaces inherited from interface ConsumerSeekAware
ConsumerSeekAware.ConsumerSeekCallback -
Field Summary
Fields inherited from class AbstractDelegatingMessageListenerAdapter
delegate, delegateType, logger -
Constructor Summary
ConstructorsConstructorDescriptionKafkaBackoffAwareMessageListenerAdapter(MessageListener<K, V> delegate, KafkaConsumerBackoffManager kafkaConsumerBackoffManager, String listenerId, String backoffTimestampHeader, Clock clock) The configuration for this listener adapter.KafkaBackoffAwareMessageListenerAdapter(MessageListener<K, V> adapter, KafkaConsumerBackoffManager kafkaConsumerBackoffManager, String listenerId, Clock clock) -
Method Summary
Modifier and TypeMethodDescriptionvoidInvoked with data from kafka.voidonMessage(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> data, @Nullable org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Invoked with data from kafka and provides access to theConsumer.voidonMessage(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> data, @Nullable Acknowledgment acknowledgment) Invoked with data from kafka.voidonMessage(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> consumerRecord, @Nullable Acknowledgment acknowledgment, @Nullable org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Invoked with data from kafka and provides access to theConsumer.Methods inherited from class AbstractDelegatingMessageListenerAdapter
getDelegate, onIdleContainer, onPartitionsAssigned, onPartitionsRevoked, registerSeekCallbackMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ConsumerSeekAware
onFirstPoll, unregisterSeekCallback
-
Constructor Details
-
KafkaBackoffAwareMessageListenerAdapter
public KafkaBackoffAwareMessageListenerAdapter(MessageListener<K, V> delegate, KafkaConsumerBackoffManager kafkaConsumerBackoffManager, String listenerId, String backoffTimestampHeader, Clock clock) The configuration for this listener adapter.- Parameters:
delegate- the MessageListener instance that will handle the messages.kafkaConsumerBackoffManager- the manager that will handle the back off.listenerId- the id of the listener container associated to this adapter.backoffTimestampHeader- the header name that will be looked up in the incoming record to acquire the timestamp.clock- the clock instance that will be used to timestamp the exception throwing.- Since:
- 2.7
-
KafkaBackoffAwareMessageListenerAdapter
public KafkaBackoffAwareMessageListenerAdapter(MessageListener<K, V> adapter, KafkaConsumerBackoffManager kafkaConsumerBackoffManager, String listenerId, Clock clock) throws KafkaBackoffException- Throws:
KafkaBackoffException
-
-
Method Details
-
onMessage
public void onMessage(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> consumerRecord, @Nullable Acknowledgment acknowledgment, @Nullable org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Description copied from interface:GenericMessageListenerInvoked with data from kafka and provides access to theConsumer. The default implementation throwsUnsupportedOperationException.- Specified by:
onMessagein interfaceAcknowledgingConsumerAwareMessageListener<K,V> - Specified by:
onMessagein interfaceGenericMessageListener<K>- Parameters:
consumerRecord- the data to be processed.acknowledgment- the acknowledgment.consumer- the consumer.
-
onMessage
Description copied from interface:AcknowledgingConsumerAwareMessageListenerInvoked with data from kafka. Containers should never call this since it they will detect that we are a consumer aware acknowledging listener.- Specified by:
onMessagein interfaceAcknowledgingConsumerAwareMessageListener<K,V> - Specified by:
onMessagein interfaceGenericMessageListener<K>- Parameters:
data- the data to be processed.
-
onMessage
public void onMessage(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> data, @Nullable Acknowledgment acknowledgment) Description copied from interface:GenericMessageListenerInvoked with data from kafka. The default implementation throwsUnsupportedOperationException.- Specified by:
onMessagein interfaceGenericMessageListener<K>- Parameters:
data- the data to be processed.acknowledgment- the acknowledgment.
-
onMessage
public void onMessage(org.apache.kafka.clients.consumer.ConsumerRecord<K, V> data, @Nullable org.apache.kafka.clients.consumer.Consumer<?, ?> consumer) Description copied from interface:GenericMessageListenerInvoked with data from kafka and provides access to theConsumer. The default implementation throwsUnsupportedOperationException.- Specified by:
onMessagein interfaceGenericMessageListener<K>- Parameters:
data- the data to be processed.consumer- the consumer.
-