Class 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 Detail

      • KafkaCompanion

        public KafkaCompanion​(String bootstrapServers)
      • KafkaCompanion

        public KafkaCompanion​(String bootstrapServers,
                              Duration kafkaApiTimeout)
    • Method Detail

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