Class ReactiveKafkaConsumer<K,V>
- java.lang.Object
-
- io.smallrye.reactive.messaging.kafka.impl.ReactiveKafkaConsumer<K,V>
-
- All Implemented Interfaces:
KafkaConsumer<K,V>
public class ReactiveKafkaConsumer<K,V> extends Object implements KafkaConsumer<K,V>
-
-
Constructor Summary
Constructors Constructor Description ReactiveKafkaConsumer(KafkaConnectorIncomingConfiguration config, KafkaSource<K,V> source)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
io.smallrye.mutiny.Uni<Void>
commit(Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> map)
Commits the offsetsio.smallrye.mutiny.Uni<Void>
commitAsync(Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> map)
io.smallrye.mutiny.Uni<Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata>>
committed(org.apache.kafka.common.TopicPartition... tps)
Retrieved the last committed offset for each topic/partitionMap<String,?>
configuration()
String
get(String attribute)
io.smallrye.mutiny.Uni<Set<org.apache.kafka.common.TopicPartition>>
getAssignments()
Retrieves the current assignments of the consumer.io.smallrye.mutiny.Uni<Map<org.apache.kafka.common.TopicPartition,Long>>
getPositions()
Retrieves the next positions for each assigned topic/partitionsorg.apache.kafka.clients.consumer.ConsumerRebalanceListener
getRebalanceListener()
void
injectClient(org.apache.kafka.clients.consumer.MockConsumer<?,?> consumer)
io.smallrye.mutiny.Uni<Set<org.apache.kafka.common.TopicPartition>>
pause()
Pauses the consumption of records.io.smallrye.mutiny.Uni<Set<org.apache.kafka.common.TopicPartition>>
paused()
Retrieves the set of paused topic/partitionio.smallrye.mutiny.Uni<Void>
resume()
Resumes the consumption of record.io.smallrye.mutiny.Uni<Void>
runOnPollingThread(Consumer<org.apache.kafka.clients.consumer.Consumer<K,V>> action)
Runs an action on the polling thread.<T> io.smallrye.mutiny.Uni<T>
runOnPollingThread(Function<org.apache.kafka.clients.consumer.Consumer<K,V>,T> action)
Runs an action on the polling thread.io.smallrye.mutiny.Uni<Void>
seek(org.apache.kafka.common.TopicPartition partition, long offset)
Overrides the fetch offset that the consumer will use on the next poll of given topic and partition.io.smallrye.mutiny.Uni<Void>
seek(org.apache.kafka.common.TopicPartition partition, org.apache.kafka.clients.consumer.OffsetAndMetadata offsetAndMetadata)
Overrides the fetch offset that the consumer will use on the next poll of given topic and partition.io.smallrye.mutiny.Uni<Void>
seekToBeginning(Collection<org.apache.kafka.common.TopicPartition> partitions)
Seek to the first offset for each of the given partitions.io.smallrye.mutiny.Uni<Void>
seekToEnd(Collection<org.apache.kafka.common.TopicPartition> partitions)
Seek to the last offset for each of the given partitions.void
setRebalanceListener()
io.smallrye.mutiny.Multi<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>>
subscribe(Pattern topics)
io.smallrye.mutiny.Multi<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>>
subscribe(Set<String> topics)
org.apache.kafka.clients.consumer.Consumer<K,V>
unwrap()
-
-
-
Constructor Detail
-
ReactiveKafkaConsumer
public ReactiveKafkaConsumer(KafkaConnectorIncomingConfiguration config, KafkaSource<K,V> source)
-
-
Method Detail
-
setRebalanceListener
public void setRebalanceListener()
-
getRebalanceListener
public org.apache.kafka.clients.consumer.ConsumerRebalanceListener getRebalanceListener()
-
runOnPollingThread
@CheckReturnValue public <T> io.smallrye.mutiny.Uni<T> runOnPollingThread(Function<org.apache.kafka.clients.consumer.Consumer<K,V>,T> action)
Description copied from interface:KafkaConsumer
Runs an action on the polling thread.The action is a function taking as parameter the
Consumer
and that returns a result (potentiallynull
). The producedUni
emits the returned result when the action completes. If the action throws an exception, the producedUni
emits the exception as failure.If the action does not return a result, use
KafkaConsumer.runOnPollingThread(java.util.function.Consumer)
.- Specified by:
runOnPollingThread
in interfaceKafkaConsumer<K,V>
- Type Parameters:
T
- the type of result, can beVoid
- Parameters:
action
- the action to execute, must not benull
- Returns:
- the Uni emitting the result or the failure when the action completes.
-
runOnPollingThread
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> runOnPollingThread(Consumer<org.apache.kafka.clients.consumer.Consumer<K,V>> action)
Description copied from interface:KafkaConsumer
Runs an action on the polling thread.The action is a consumer receiving the
Consumer
. The producedUni
emitsnull
when the action completes. If the action throws an exception, the producedUni
emits the exception as failure.- Specified by:
runOnPollingThread
in interfaceKafkaConsumer<K,V>
- Parameters:
action
- the action, must not benull
- Returns:
- the Uni emitting
null
or the failure when the action completes.
-
pause
@CheckReturnValue public io.smallrye.mutiny.Uni<Set<org.apache.kafka.common.TopicPartition>> pause()
Description copied from interface:KafkaConsumer
Pauses the consumption of records. The polling will continue, but no records will be received.- Specified by:
pause
in interfaceKafkaConsumer<K,V>
- Returns:
- the Uni emitting when the action completes, the set of topic/partition paused by this call.
-
paused
@CheckReturnValue public io.smallrye.mutiny.Uni<Set<org.apache.kafka.common.TopicPartition>> paused()
Description copied from interface:KafkaConsumer
Retrieves the set of paused topic/partition- Specified by:
paused
in interfaceKafkaConsumer<K,V>
- Returns:
- the Uni emitting the set of topic/partition paused.
-
committed
@CheckReturnValue public io.smallrye.mutiny.Uni<Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata>> committed(org.apache.kafka.common.TopicPartition... tps)
Description copied from interface:KafkaConsumer
Retrieved the last committed offset for each topic/partition- Specified by:
committed
in interfaceKafkaConsumer<K,V>
- Parameters:
tps
- the set of topic/partition to query, must not benull
, must not be empty.- Returns:
- the Uni emitting the offset for the underlying consumer for each of the passed topic/partition.
-
subscribe
@CheckReturnValue public io.smallrye.mutiny.Multi<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>> subscribe(Set<String> topics)
-
subscribe
@CheckReturnValue public io.smallrye.mutiny.Multi<org.apache.kafka.clients.consumer.ConsumerRecord<K,V>> subscribe(Pattern topics)
-
resume
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> resume()
Description copied from interface:KafkaConsumer
Resumes the consumption of record. It resumes the consumption of all the paused topic/partition.- Specified by:
resume
in interfaceKafkaConsumer<K,V>
- Returns:
- the Uni indicating when the resume action completes.
-
unwrap
public org.apache.kafka.clients.consumer.Consumer<K,V> unwrap()
- Specified by:
unwrap
in interfaceKafkaConsumer<K,V>
- Returns:
- the underlying consumer. Be aware that to use it you needs to be on the polling thread.
-
commit
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> commit(Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> map)
Description copied from interface:KafkaConsumer
Commits the offsets- Specified by:
commit
in interfaceKafkaConsumer<K,V>
- Parameters:
map
- the map of topic/partition -> offset to commit- Returns:
- the Uni emitting
null
when the commit has been executed.
-
commitAsync
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> commitAsync(Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> map)
-
close
public void close()
-
injectClient
public void injectClient(org.apache.kafka.clients.consumer.MockConsumer<?,?> consumer)
-
getPositions
@CheckReturnValue public io.smallrye.mutiny.Uni<Map<org.apache.kafka.common.TopicPartition,Long>> getPositions()
Description copied from interface:KafkaConsumer
Retrieves the next positions for each assigned topic/partitions- Specified by:
getPositions
in interfaceKafkaConsumer<K,V>
- Returns:
- the Uni emitting the map of topic/partition -> position.
-
getAssignments
@CheckReturnValue public io.smallrye.mutiny.Uni<Set<org.apache.kafka.common.TopicPartition>> getAssignments()
Description copied from interface:KafkaConsumer
Retrieves the current assignments of the consumer.- Specified by:
getAssignments
in interfaceKafkaConsumer<K,V>
- Returns:
- the Uni emitting the set of topic/partition currently assigned to the consumer
-
seek
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> seek(org.apache.kafka.common.TopicPartition partition, long offset)
Description copied from interface:KafkaConsumer
Overrides the fetch offset that the consumer will use on the next poll of given topic and partition. Note that you may lose data if this API is arbitrarily used in the middle of consumption.- Specified by:
seek
in interfaceKafkaConsumer<K,V>
- Parameters:
partition
- the topic and partition for which to set the offsetoffset
- the new offset- Returns:
- a Uni that completes successfully when the offset is set;
it completes with
IllegalArgumentException
if the provided offset is negative; it completes withIllegalStateException
if the providedTopicPartition
is not assigned to this consumer
-
seek
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> seek(org.apache.kafka.common.TopicPartition partition, org.apache.kafka.clients.consumer.OffsetAndMetadata offsetAndMetadata)
Description copied from interface:KafkaConsumer
Overrides the fetch offset that the consumer will use on the next poll of given topic and partition. This method allows setting the leaderEpoch along with the desired offset. Note that you may lose data if this API is arbitrarily used in the middle of consumption.- Specified by:
seek
in interfaceKafkaConsumer<K,V>
- Parameters:
partition
- the topic and partition for which to set the offsetoffsetAndMetadata
- the new offset, with additional metadata- Returns:
- a Uni that completes successfully when the offset is set;
it completes with
IllegalArgumentException
if the provided offset is negative; it completes withIllegalStateException
if the providedTopicPartition
is not assigned to this consumer
-
seekToBeginning
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> seekToBeginning(Collection<org.apache.kafka.common.TopicPartition> partitions)
Description copied from interface:KafkaConsumer
Seek to the first offset for each of the given partitions. If no partitions are provided, seek to the first offset for all of the currently assigned partitions.- Specified by:
seekToBeginning
in interfaceKafkaConsumer<K,V>
- Parameters:
partitions
- the partitions for which to set the offset- Returns:
- a Uni that completes successfully when the offset is set;
it completes with
IllegalArgumentException
ifpartitions
isnull
; it completes withIllegalStateException
if any of the providedTopicPartition
s are not currently assigned to this consumer
-
seekToEnd
@CheckReturnValue public io.smallrye.mutiny.Uni<Void> seekToEnd(Collection<org.apache.kafka.common.TopicPartition> partitions)
Description copied from interface:KafkaConsumer
Seek to the last offset for each of the given partitions. If no partitions are provided, seek to the last offset for all of the currently assigned partitions.- Specified by:
seekToEnd
in interfaceKafkaConsumer<K,V>
- Parameters:
partitions
- the partitions for which to set the offset- Returns:
- a Uni that completes successfully when the offset is set;
it completes with
IllegalArgumentException
ifpartitions
isnull
; it completes withIllegalStateException
if any of the providedTopicPartition
s are not currently assigned to this consumer
-
-