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 Details

    • KafkaCompanion

      public KafkaCompanion(String bootstrapServers)
    • KafkaCompanion

      public KafkaCompanion(String bootstrapServers, Duration kafkaApiTimeout)
  • Method Details

    • getKafkaApiTimeout

      public Duration getKafkaApiTimeout()
    • getCommonClientConfig

      public Map<String,Object> getCommonClientConfig()
    • setCommonClientConfig

      public void setCommonClientConfig(Map<String,Object> properties)
    • getBootstrapServers

      public String getBootstrapServers()
    • getOrCreateAdminClient

      public org.apache.kafka.clients.admin.AdminClient getOrCreateAdminClient()
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • 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

      @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

      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)
    • getConsumerProperties

      public Map<String,Object> 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

      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()
    • getProducerProperties

      public Map<String,Object> 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

      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)