KafkaConsumer¶
KafkaConsumer is a Consumer.
Creating Instance¶
KafkaConsumer takes the following to be created:
- Configuration (ConsumerConfig or
Map<String, Object>orProperties) -
Deserializer<K> -
Deserializer<V>
Group ID¶
KafkaConsumer can be given a group ID using group.id (indirectly in the config) configuration property when created.
IsolationLevel¶
KafkaConsumer can be given an IsolationLevel using isolation.level configuration property (indirectly in the config) when created.
KafkaConsumer uses the IsolationLevel for the following:
- Creating a Fetcher (when created)
- currentLag
Fetcher¶
KafkaConsumer creates a Fetcher when created.
ConsumerCoordinator¶
KafkaConsumer creates a ConsumerCoordinator when created with the group.id specified.
enforceRebalance¶
void enforceRebalance()
enforceRebalance requests the ConsumerCoordinator to requestRejoin with the following reason:
rebalance enforced by user
enforceRebalance is part of the Consumer abstraction.
groupMetadata¶
ConsumerGroupMetadata groupMetadata()
groupMetadata...FIXME
groupMetadata is part of the Consumer abstraction.
Polling for Records¶
ConsumerRecords<K, V> poll(
Duration timeout) // (1)
ConsumerRecords<K, V> poll(
Timer timer,
boolean includeMetadataInTimeout) // (2)
- Uses
includeMetadataInTimeoutenabled (true) - A private method
poll...FIXME
poll is part of the Consumer abstraction.
Polling for Fetches¶
Map<TopicPartition, List<ConsumerRecord<K, V>>> pollForFetches(
Timer timer)
pollForFetches requests the Fetcher for fetched records and returns them immediately if available.
Otherwise, pollForFetches requests the Fetcher to sendFetches.
pollForFetches prints out the following TRACE message to the logs:
Polling for fetches with timeout [pollTimeout]
pollForFetches requests the ConsumerNetworkClient to poll (with the pollTimeout until it expires or the Fetcher has some available fetches ready).
In the end, pollForFetches requests the Fetcher for the fetched records again.
Subscribing to Topics¶
void subscribe(
Collection<String> topics) // (1)
void subscribe(
Collection<String> topics,
ConsumerRebalanceListener listener)
void subscribe(
Pattern pattern) // (2)
void subscribe(
Pattern pattern,
ConsumerRebalanceListener callback)
- Uses
NoOpConsumerRebalanceListener - Uses
NoOpConsumerRebalanceListener
subscribe...FIXME
subscribe is part of the Consumer abstraction.
Waking Up¶
void wakeup()
wakeup...FIXME
wakeup is part of the Consumer abstraction.