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 AutoCloseable
KafkaCompanion 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
ConstructorsConstructorDescriptionKafkaCompanion(String bootstrapServers) KafkaCompanion(String bootstrapServers, Duration kafkaApiTimeout) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()cluster()<K,V> ConsumerBuilder<K, V> <V> ConsumerBuilder<String,V> <K,V> ConsumerBuilder<K, V> consume(org.apache.kafka.common.serialization.Serde<K> keySerde, org.apache.kafka.common.serialization.Serde<V> valueSerde) <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) static Stringorg.apache.kafka.clients.admin.AdminClient<T> org.apache.kafka.common.serialization.Serde<T>getSerdeForType(Class<T> type) offsets()<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) <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) <K,V> ProducerBuilder<K, V> <V> ProducerBuilder<String,V> <K,V> ProducerBuilder<K, V> produce(org.apache.kafka.common.serialization.Serde<K> keySerde, org.apache.kafka.common.serialization.Serde<V> valueSerde) <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> static <K,V> org.apache.kafka.clients.producer.ProducerRecord<K, V> static <K,V> org.apache.kafka.clients.producer.ProducerRecord<K, V> <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 voidtopics()protected static <T> io.smallrye.mutiny.Uni<T>protected static <T> io.smallrye.mutiny.Uni<T>toUni(org.apache.kafka.common.KafkaFuture<T> kafkaFuture) Deprecated, for removal: This API element is subject to removal in a future version.static org.apache.kafka.common.TopicPartitionstatic <T> io.smallrye.mutiny.Uni<T>static io.smallrye.mutiny.Uni<Void>waitFor(BooleanSupplier predicate, Duration pollDelay)
-
Constructor Details
-
KafkaCompanion
-
KafkaCompanion
-
-
Method Details
-
getKafkaApiTimeout
-
getCommonClientConfig
-
setCommonClientConfig
-
getBootstrapServers
-
getOrCreateAdminClient
public org.apache.kafka.clients.admin.AdminClient getOrCreateAdminClient() -
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
sleep
-
getHeader
-
tp
-
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
-
waitFor
-
waitFor
-
toUni
@Deprecated(forRemoval=true) protected static <T> io.smallrye.mutiny.Uni<T> toUni(org.apache.kafka.common.KafkaFuture<T> kafkaFuture) Deprecated, for removal: This API element is subject to removal in a future version. -
toUni
protected static <T> io.smallrye.mutiny.Uni<T> toUni(Supplier<org.apache.kafka.common.KafkaFuture<T>> kafkaFutureSupplier) -
registerSerde
-
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
-
topics
-
offsets
-
consumerGroups
-
cluster
-
deleteRecords
public void deleteRecords(Map<org.apache.kafka.common.TopicPartition, org.apache.kafka.clients.admin.RecordsToDelete> offsetsToDelete) -
deleteRecords
-
getConsumerProperties
-
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
-
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
-
consume
-
consumeStrings
-
consumeIntegers
-
consumeDoubles
-
getProducerProperties
-
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
-
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
-
produce
-
produceStrings
-
produceIntegers
-
produceDoubles
-
process
public <K,C, ProducerTask processP> (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, ProducerTask processTransactionalP> (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)
-