Class KafkaCompanion
- java.lang.Object
-
- io.smallrye.reactive.messaging.kafka.companion.KafkaCompanion
-
- All Implemented Interfaces:
AutoCloseable
@Experimental("Experimental API") public class KafkaCompanion extends Object implements AutoCloseableKafkaCompanion wraps actions on Kafka admin, producer and consumer, aiming to ease interactions with a Kafka broker.It is not intended to be used in production code with long-running actions.
-
-
Constructor Summary
Constructors Constructor Description KafkaCompanion(String bootstrapServers)KafkaCompanion(String bootstrapServers, Duration kafkaApiTimeout)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()ClusterCompanioncluster()<K,V>
ConsumerBuilder<K,V>consume(Class<K> keyType, Class<V> valueType)<V> ConsumerBuilder<String,V>consume(Class<V> valueType)<K,V>
ConsumerBuilder<K,V>consume(org.apache.kafka.common.serialization.Serde<K> keySerde, org.apache.kafka.common.serialization.Serde<V> valueSerde)ConsumerBuilder<String,Double>consumeDoubles()ConsumerBuilder<String,Integer>consumeIntegers()ConsumerGroupsCompanionconsumerGroups()ConsumerBuilder<String,String>consumeStrings()<K,V>
ConsumerBuilder<K,V>consumeWithDeserializers(Class<? extends org.apache.kafka.common.serialization.Deserializer<?>> valueDeserializerClassName)<K,V>
ConsumerBuilder<K,V>consumeWithDeserializers(Class<? extends org.apache.kafka.common.serialization.Deserializer<?>> keyDeserializerClassName, Class<? extends org.apache.kafka.common.serialization.Deserializer<?>> valueDeserializerClassName)<K,V>
ConsumerBuilder<K,V>consumeWithDeserializers(String valueDeserializerClassName)<K,V>
ConsumerBuilder<K,V>consumeWithDeserializers(String keyDeserializerClassName, String valueDeserializerClassName)<K,V>
ConsumerBuilder<K,V>consumeWithDeserializers(org.apache.kafka.common.serialization.Deserializer<K> keyDeserializer, org.apache.kafka.common.serialization.Deserializer<V> valueDeserializer)voiddeleteRecords(Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.admin.RecordsToDelete> offsetsToDelete)voiddeleteRecords(org.apache.kafka.common.TopicPartition partition, Long beforeOffset)StringgetBootstrapServers()Map<String,Object>getCommonClientConfig()Map<String,Object>getConsumerProperties()static StringgetHeader(org.apache.kafka.common.header.Headers headers, String key)DurationgetKafkaApiTimeout()org.apache.kafka.clients.admin.AdminClientgetOrCreateAdminClient()Map<String,Object>getProducerProperties()<T> org.apache.kafka.common.serialization.Serde<T>getSerdeForType(Class<T> type)OffsetsCompanionoffsets()<K,C,P>
ProducerTaskprocess(Set<String> topics, ConsumerBuilder<K,C> consumer, ProducerBuilder<K,P> producer, Function<org.apache.kafka.clients.consumer.ConsumerRecord<K,C>,org.apache.kafka.clients.producer.ProducerRecord<K,P>> process)<K,C,P>
ProducerTaskprocessTransactional(Set<String> topics, ConsumerBuilder<K,C> consumer, ProducerBuilder<K,P> producer, Function<org.apache.kafka.clients.consumer.ConsumerRecord<K,C>,org.apache.kafka.clients.producer.ProducerRecord<K,P>> process)<K,V>
ProducerBuilder<K,V>produce(Class<K> keyType, Class<V> valueType)<V> ProducerBuilder<String,V>produce(Class<V> valueType)<K,V>
ProducerBuilder<K,V>produce(org.apache.kafka.common.serialization.Serde<K> keySerde, org.apache.kafka.common.serialization.Serde<V> valueSerde)ProducerBuilder<String,Double>produceDoubles()ProducerBuilder<String,Integer>produceIntegers()ProducerBuilder<String,String>produceStrings()<K,V>
ProducerBuilder<K,V>produceWithSerializers(Class<? extends org.apache.kafka.common.serialization.Serializer<?>> valueSerializerType)<K,V>
ProducerBuilder<K,V>produceWithSerializers(Class<? extends org.apache.kafka.common.serialization.Serializer<?>> keySerializerType, Class<? extends org.apache.kafka.common.serialization.Serializer<?>> valueSerializerType)<K,V>
ProducerBuilder<K,V>produceWithSerializers(String valueSerializerClassName)<K,V>
ProducerBuilder<K,V>produceWithSerializers(String keySerializerClassName, String valueSerializerClassName)<K,V>
ProducerBuilder<K,V>produceWithSerializers(org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer)static <K,V>
org.apache.kafka.clients.producer.ProducerRecord<K,V>record(String topic, Integer partition, K key, V value)static <K,V>
org.apache.kafka.clients.producer.ProducerRecord<K,V>record(String topic, K key, V value)static <K,V>
org.apache.kafka.clients.producer.ProducerRecord<K,V>record(String topic, V value)<T> voidregisterSerde(Class<T> type, org.apache.kafka.common.serialization.Serde<T> serde)<T> voidregisterSerde(Class<T> type, org.apache.kafka.common.serialization.Serializer<T> serializer, org.apache.kafka.common.serialization.Deserializer<T> deserializer)voidsetCommonClientConfig(Map<String,Object> properties)static voidsleep(Duration duration)TopicsCompaniontopics()protected static <T> io.smallrye.mutiny.Uni<T>toUni(org.apache.kafka.common.KafkaFuture<T> kafkaFuture)static org.apache.kafka.common.TopicPartitiontp(String topic, int partition)static <T> io.smallrye.mutiny.Uni<T>waitFor(io.smallrye.mutiny.Uni<T> source, Predicate<T> predicate, Duration pollDelay)static io.smallrye.mutiny.Uni<Void>waitFor(BooleanSupplier predicate, Duration pollDelay)
-
-
-
Method Detail
-
getKafkaApiTimeout
public Duration getKafkaApiTimeout()
-
getBootstrapServers
public String getBootstrapServers()
-
getOrCreateAdminClient
public org.apache.kafka.clients.admin.AdminClient getOrCreateAdminClient()
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable
-
sleep
public static void sleep(Duration duration)
-
getHeader
public static String getHeader(org.apache.kafka.common.header.Headers headers, String key)
-
tp
public static org.apache.kafka.common.TopicPartition tp(String topic, int partition)
-
record
public static <K,V> org.apache.kafka.clients.producer.ProducerRecord<K,V> record(String topic, V value)
-
record
public static <K,V> org.apache.kafka.clients.producer.ProducerRecord<K,V> record(String topic, K key, V value)
-
record
public static <K,V> org.apache.kafka.clients.producer.ProducerRecord<K,V> record(String topic, Integer partition, K key, V value)
-
waitFor
public static <T> io.smallrye.mutiny.Uni<T> waitFor(io.smallrye.mutiny.Uni<T> source, Predicate<T> predicate, Duration pollDelay)
-
waitFor
public static io.smallrye.mutiny.Uni<Void> waitFor(BooleanSupplier predicate, Duration pollDelay)
-
toUni
protected static <T> io.smallrye.mutiny.Uni<T> toUni(org.apache.kafka.common.KafkaFuture<T> kafkaFuture)
-
registerSerde
public <T> void registerSerde(Class<T> type, org.apache.kafka.common.serialization.Serde<T> serde)
-
registerSerde
public <T> void registerSerde(Class<T> type, org.apache.kafka.common.serialization.Serializer<T> serializer, org.apache.kafka.common.serialization.Deserializer<T> deserializer)
-
getSerdeForType
public <T> org.apache.kafka.common.serialization.Serde<T> getSerdeForType(Class<T> type)
-
topics
public TopicsCompanion topics()
-
offsets
public OffsetsCompanion offsets()
-
consumerGroups
public ConsumerGroupsCompanion consumerGroups()
-
cluster
public ClusterCompanion cluster()
-
deleteRecords
public void deleteRecords(Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.admin.RecordsToDelete> offsetsToDelete)
-
deleteRecords
public void deleteRecords(org.apache.kafka.common.TopicPartition partition, Long beforeOffset)
-
consumeWithDeserializers
public <K,V> ConsumerBuilder<K,V> consumeWithDeserializers(Class<? extends org.apache.kafka.common.serialization.Deserializer<?>> valueDeserializerClassName)
-
consumeWithDeserializers
public <K,V> ConsumerBuilder<K,V> consumeWithDeserializers(Class<? extends org.apache.kafka.common.serialization.Deserializer<?>> keyDeserializerClassName, Class<? extends org.apache.kafka.common.serialization.Deserializer<?>> valueDeserializerClassName)
-
consumeWithDeserializers
public <K,V> ConsumerBuilder<K,V> consumeWithDeserializers(String valueDeserializerClassName)
-
consumeWithDeserializers
public <K,V> ConsumerBuilder<K,V> consumeWithDeserializers(String keyDeserializerClassName, String valueDeserializerClassName)
-
consumeWithDeserializers
public <K,V> ConsumerBuilder<K,V> consumeWithDeserializers(org.apache.kafka.common.serialization.Deserializer<K> keyDeserializer, org.apache.kafka.common.serialization.Deserializer<V> valueDeserializer)
-
consume
public <K,V> ConsumerBuilder<K,V> consume(org.apache.kafka.common.serialization.Serde<K> keySerde, org.apache.kafka.common.serialization.Serde<V> valueSerde)
-
consume
public <K,V> ConsumerBuilder<K,V> consume(Class<K> keyType, Class<V> valueType)
-
consume
public <V> ConsumerBuilder<String,V> consume(Class<V> valueType)
-
consumeStrings
public ConsumerBuilder<String,String> consumeStrings()
-
consumeIntegers
public ConsumerBuilder<String,Integer> consumeIntegers()
-
consumeDoubles
public ConsumerBuilder<String,Double> consumeDoubles()
-
produceWithSerializers
public <K,V> ProducerBuilder<K,V> produceWithSerializers(Class<? extends org.apache.kafka.common.serialization.Serializer<?>> keySerializerType, Class<? extends org.apache.kafka.common.serialization.Serializer<?>> valueSerializerType)
-
produceWithSerializers
public <K,V> ProducerBuilder<K,V> produceWithSerializers(Class<? extends org.apache.kafka.common.serialization.Serializer<?>> valueSerializerType)
-
produceWithSerializers
public <K,V> ProducerBuilder<K,V> produceWithSerializers(String valueSerializerClassName)
-
produceWithSerializers
public <K,V> ProducerBuilder<K,V> produceWithSerializers(String keySerializerClassName, String valueSerializerClassName)
-
produceWithSerializers
public <K,V> ProducerBuilder<K,V> produceWithSerializers(org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer)
-
produce
public <K,V> ProducerBuilder<K,V> produce(org.apache.kafka.common.serialization.Serde<K> keySerde, org.apache.kafka.common.serialization.Serde<V> valueSerde)
-
produce
public <K,V> ProducerBuilder<K,V> produce(Class<K> keyType, Class<V> valueType)
-
produce
public <V> ProducerBuilder<String,V> produce(Class<V> valueType)
-
produceStrings
public ProducerBuilder<String,String> produceStrings()
-
produceIntegers
public ProducerBuilder<String,Integer> produceIntegers()
-
produceDoubles
public ProducerBuilder<String,Double> produceDoubles()
-
process
public <K,C,P> ProducerTask process(Set<String> topics, ConsumerBuilder<K,C> consumer, ProducerBuilder<K,P> producer, Function<org.apache.kafka.clients.consumer.ConsumerRecord<K,C>,org.apache.kafka.clients.producer.ProducerRecord<K,P>> process)
-
processTransactional
public <K,C,P> ProducerTask processTransactional(Set<String> topics, ConsumerBuilder<K,C> consumer, ProducerBuilder<K,P> producer, Function<org.apache.kafka.clients.consumer.ConsumerRecord<K,C>,org.apache.kafka.clients.producer.ProducerRecord<K,P>> process)
-
-