Class MetadataContextAwareKafkaProducer<K,V>
- java.lang.Object
-
- org.sdase.commons.server.kafka.producer.MetadataContextAwareKafkaProducer<K,V>
-
- Type Parameters:
K
- the type of the message keyV
- the type of the message value
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,org.apache.kafka.clients.producer.Producer<K,V>
public class MetadataContextAwareKafkaProducer<K,V> extends java.lang.Object implements org.apache.kafka.clients.producer.Producer<K,V>
AProducer
that delegates all implementations to a delegate.ProducerRecord.headers()
are extended with information of the currentMetadataContext
.
-
-
Constructor Summary
Constructors Constructor Description MetadataContextAwareKafkaProducer(org.apache.kafka.clients.producer.Producer<K,V> delegate, java.util.Set<java.lang.String> metadataFields)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
abortTransaction()
void
beginTransaction()
void
close()
void
close(java.time.Duration timeout)
void
commitTransaction()
void
flush()
void
initTransactions()
java.util.Map<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric>
metrics()
java.util.List<org.apache.kafka.common.PartitionInfo>
partitionsFor(java.lang.String topic)
java.util.concurrent.Future<org.apache.kafka.clients.producer.RecordMetadata>
send(org.apache.kafka.clients.producer.ProducerRecord<K,V> producerRecord)
java.util.concurrent.Future<org.apache.kafka.clients.producer.RecordMetadata>
send(org.apache.kafka.clients.producer.ProducerRecord<K,V> producerRecord, org.apache.kafka.clients.producer.Callback callback)
void
sendOffsetsToTransaction(java.util.Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> offsets, java.lang.String consumerGroupId)
void
sendOffsetsToTransaction(java.util.Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> offsets, org.apache.kafka.clients.consumer.ConsumerGroupMetadata groupMetadata)
-
-
-
Constructor Detail
-
MetadataContextAwareKafkaProducer
public MetadataContextAwareKafkaProducer(org.apache.kafka.clients.producer.Producer<K,V> delegate, java.util.Set<java.lang.String> metadataFields)
- Parameters:
delegate
- the actualProducer
that is used to interact with the Kafka cluster.metadataFields
- the configured fields that are used as metadata
-
-
Method Detail
-
initTransactions
public void initTransactions()
-
beginTransaction
public void beginTransaction() throws org.apache.kafka.common.errors.ProducerFencedException
-
sendOffsetsToTransaction
public void sendOffsetsToTransaction(java.util.Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> offsets, java.lang.String consumerGroupId) throws org.apache.kafka.common.errors.ProducerFencedException
-
sendOffsetsToTransaction
public void sendOffsetsToTransaction(java.util.Map<org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata> offsets, org.apache.kafka.clients.consumer.ConsumerGroupMetadata groupMetadata) throws org.apache.kafka.common.errors.ProducerFencedException
-
commitTransaction
public void commitTransaction() throws org.apache.kafka.common.errors.ProducerFencedException
-
abortTransaction
public void abortTransaction() throws org.apache.kafka.common.errors.ProducerFencedException
-
send
public java.util.concurrent.Future<org.apache.kafka.clients.producer.RecordMetadata> send(org.apache.kafka.clients.producer.ProducerRecord<K,V> producerRecord)
-
send
public java.util.concurrent.Future<org.apache.kafka.clients.producer.RecordMetadata> send(org.apache.kafka.clients.producer.ProducerRecord<K,V> producerRecord, org.apache.kafka.clients.producer.Callback callback)
-
flush
public void flush()
-
partitionsFor
public java.util.List<org.apache.kafka.common.PartitionInfo> partitionsFor(java.lang.String topic)
-
metrics
public java.util.Map<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric> metrics()
-
close
public void close()
-
-