Interface KafkaWriteStream<K,V>

All Superinterfaces:
StreamBase, WriteStream<org.apache.kafka.clients.producer.ProducerRecord<K,V>>

public interface KafkaWriteStream<K,V> extends WriteStream<org.apache.kafka.clients.producer.ProducerRecord<K,V>>
A WriteStream for writing to Kafka ProducerRecord.

The WriteStream.write(Object) provides global control over writing a record.

  • Field Details

  • Method Details

    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, Properties config)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      config - Kafka producer configuration
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, Properties config, Class<K> keyType, Class<V> valueType)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      config - Kafka producer configuration
      keyType - class type for the key serialization
      valueType - class type for the value serialization
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, Properties config, org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      config - Kafka producer configuration
      keySerializer - key serializer
      valueSerializer - value serializer
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, Map<String,Object> config)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      config - Kafka producer configuration
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, Map<String,Object> config, Class<K> keyType, Class<V> valueType)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      config - Kafka producer configuration
      keyType - class type for the key serialization
      valueType - class type for the value serialization
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, Map<String,Object> config, org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      config - Kafka producer configuration
      keySerializer - key serializer
      valueSerializer - value serializer
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, KafkaClientOptions options)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      options - Kafka producer options
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, KafkaClientOptions options, Class<K> keyType, Class<V> valueType)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      options - Kafka producer options
      keyType - class type for the key serialization
      valueType - class type for the value serialization
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, KafkaClientOptions options, org.apache.kafka.common.serialization.Serializer<K> keySerializer, org.apache.kafka.common.serialization.Serializer<V> valueSerializer)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      options - Kafka producer options
      keySerializer - key serializer
      valueSerializer - value serializer
      Returns:
      an instance of the KafkaWriteStream
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, org.apache.kafka.clients.producer.Producer<K,V> producer)
      Create a new KafkaWriteStream instance
      Parameters:
      vertx - Vert.x instance to use
      producer - native Kafka producer instance
    • create

      static <K, V> KafkaWriteStream<K,V> create(Vertx vertx, org.apache.kafka.clients.producer.Producer<K,V> producer, KafkaClientOptions options)
      Create a new KafkaWriteStream instance.
      Parameters:
      vertx - Vert.x instance to use
      producer - native Kafka producer instance
      options - options used only for tracing settings
    • exceptionHandler

      KafkaWriteStream<K,V> exceptionHandler(Handler<Throwable> handler)
      Specified by:
      exceptionHandler in interface StreamBase
      Specified by:
      exceptionHandler in interface WriteStream<K>
    • setWriteQueueMaxSize

      KafkaWriteStream<K,V> setWriteQueueMaxSize(int i)
      Specified by:
      setWriteQueueMaxSize in interface WriteStream<K>
    • drainHandler

      KafkaWriteStream<K,V> drainHandler(Handler<Void> handler)
      Specified by:
      drainHandler in interface WriteStream<K>
    • initTransactions

      KafkaWriteStream<K,V> initTransactions(Handler<AsyncResult<Void>> handler)
      Initializes the underlying kafka transactional producer. See KafkaProducer.initTransactions() ()}
      Parameters:
      handler - handler called on operation completed
      Returns:
      current KafkaWriteStream instance
    • initTransactions

      Future<Void> initTransactions()
      Like initTransactions(Handler) but with a future of the result
    • beginTransaction

      KafkaWriteStream<K,V> beginTransaction(Handler<AsyncResult<Void>> handler)
      Starts a new kafka transaction. See KafkaProducer.beginTransaction()
      Parameters:
      handler - handler called on operation completed
      Returns:
      current KafkaWriteStream instance
    • beginTransaction

      Future<Void> beginTransaction()
      Like beginTransaction(Handler) but with a future of the result
    • commitTransaction

      KafkaWriteStream<K,V> commitTransaction(Handler<AsyncResult<Void>> handler)
      Commits the ongoing transaction. See KafkaProducer.commitTransaction()
      Parameters:
      handler - handler called on operation completed
      Returns:
      current KafkaWriteStream instance
    • commitTransaction

      Future<Void> commitTransaction()
      Like commitTransaction(Handler) but with a future of the result
    • abortTransaction

      KafkaWriteStream<K,V> abortTransaction(Handler<AsyncResult<Void>> handler)
      Aborts the ongoing transaction. See KafkaProducer.abortTransaction()
      Parameters:
      handler - handler called on operation completed
      Returns:
      current KafkaWriteStream instance
    • abortTransaction

      Future<Void> abortTransaction()
      Like abortTransaction(Handler) but with a future of the result
    • send

      Future<org.apache.kafka.clients.producer.RecordMetadata> send(org.apache.kafka.clients.producer.ProducerRecord<K,V> record)
      Asynchronously write a record to a topic
      Parameters:
      record - record to write
      Returns:
      a Future completed with the record metadata
    • send

      KafkaWriteStream<K,V> send(org.apache.kafka.clients.producer.ProducerRecord<K,V> record, Handler<AsyncResult<org.apache.kafka.clients.producer.RecordMetadata>> handler)
      Asynchronously write a record to a topic
      Parameters:
      record - record to write
      handler - handler called on operation completed
      Returns:
      current KafkaWriteStream instance
    • partitionsFor

      KafkaWriteStream<K,V> partitionsFor(String topic, Handler<AsyncResult<List<org.apache.kafka.common.PartitionInfo>>> handler)
      Get the partition metadata for the give topic.
      Parameters:
      topic - topic partition for which getting partitions info
      handler - handler called on operation completed
      Returns:
      current KafkaWriteStream instance
    • partitionsFor

      Future<List<org.apache.kafka.common.PartitionInfo>> partitionsFor(String topic)
      Like partitionsFor(String, Handler) but returns a Future of the asynchronous result
    • flush

      KafkaWriteStream<K,V> flush(Handler<AsyncResult<Void>> completionHandler)
      Invoking this method makes all buffered records immediately available to write
      Parameters:
      completionHandler - handler called on operation completed
      Returns:
      current KafkaWriteStream instance
    • flush

      Future<Void> flush()
      Like flush(Handler) but returns a Future of the asynchronous result
    • close

      Future<Void> close()
      Close the stream
    • close

      void close(Handler<AsyncResult<Void>> completionHandler)
      Close the stream
      Parameters:
      completionHandler - handler called on operation completed
    • close

      void close(long timeout, Handler<AsyncResult<Void>> completionHandler)
      Close the stream
      Parameters:
      timeout - timeout to wait for closing
      completionHandler - handler called on operation completed
    • close

      Future<Void> close(long timeout)
      Like close(long, Handler) but returns a Future of the asynchronous result
    • unwrap

      org.apache.kafka.clients.producer.Producer<K,V> unwrap()
      Returns:
      the underlying producer