Package org.apache.cassandra.cdc.kafka
Class KafkaPublisher
- java.lang.Object
-
- org.apache.cassandra.cdc.kafka.KafkaPublisher
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class KafkaPublisher extends java.lang.Object implements java.lang.AutoCloseable
-
-
Field Summary
Fields Modifier and Type Field Description protected CdcLogModecdcLogModeprotected EventHashereventHasherprotected booleanfailOnKafkaErrorprotected booleanfailOnRecordTooLargeErrorprotected java.util.concurrent.atomic.AtomicReference<java.lang.Throwable>failureprotected KafkaStatskafkaStatsprotected intmaxRecordSizeBytesprotected java.lang.ThreadLocal<java.util.Map<org.apache.cassandra.spark.utils.Pair<java.lang.String,java.lang.String>,java.lang.String>>prefixCacheprotected org.apache.kafka.clients.producer.KafkaProducer<java.lang.String,byte[]>producerprotected RecordProducerrecordProducerprotected org.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent>serializerprotected TopicSuppliertopicSupplier
-
Constructor Summary
Constructors Constructor Description KafkaPublisher(TopicSupplier topicSupplier, org.apache.kafka.clients.producer.KafkaProducer<java.lang.String,byte[]> producer, org.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent> serializer, int maxRecordSizeBytes, boolean failOnRecordTooLargeError, boolean failOnKafkaError, CdcLogMode logMode)KafkaPublisher(TopicSupplier topicSupplier, org.apache.kafka.clients.producer.KafkaProducer<java.lang.String,byte[]> producer, org.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent> serializer, int maxRecordSizeBytes, boolean failOnRecordTooLargeError, boolean failOnKafkaError, CdcLogMode logMode, KafkaStats kafkaStats, RecordProducer recordProducer, EventHasher eventHasher)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidclose(java.lang.Throwable t)static org.apache.cassandra.spark.utils.TableIdentifierextractTableIdFromPublishKey(java.lang.String publishKey)voidflush()protected java.lang.StringgetOrBuildKafkaPrefix(org.apache.cassandra.cdc.msg.CdcEvent event)protected byte[]getPayload(java.lang.String topic, org.apache.cassandra.cdc.msg.CdcEvent event)org.apache.cassandra.spark.data.CqlField.CqlTypegetType(org.apache.cassandra.cdc.api.KeyspaceTypeKey key)org.slf4j.Loggerlogger()voidprocessEvent(org.apache.cassandra.cdc.msg.CdcEvent event)protected RecordProducerrecordProducer()org.apache.cassandra.bridge.CassandraVersionversion()
-
-
-
Field Detail
-
topicSupplier
protected TopicSupplier topicSupplier
-
maxRecordSizeBytes
protected int maxRecordSizeBytes
-
recordProducer
protected final RecordProducer recordProducer
-
eventHasher
protected final EventHasher eventHasher
-
failOnRecordTooLargeError
protected boolean failOnRecordTooLargeError
-
failOnKafkaError
protected boolean failOnKafkaError
-
cdcLogMode
protected CdcLogMode cdcLogMode
-
failure
protected final java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> failure
-
producer
protected final org.apache.kafka.clients.producer.KafkaProducer<java.lang.String,byte[]> producer
-
serializer
protected final org.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent> serializer
-
prefixCache
protected java.lang.ThreadLocal<java.util.Map<org.apache.cassandra.spark.utils.Pair<java.lang.String,java.lang.String>,java.lang.String>> prefixCache
-
kafkaStats
protected final KafkaStats kafkaStats
-
-
Constructor Detail
-
KafkaPublisher
public KafkaPublisher(TopicSupplier topicSupplier, org.apache.kafka.clients.producer.KafkaProducer<java.lang.String,byte[]> producer, org.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent> serializer, int maxRecordSizeBytes, boolean failOnRecordTooLargeError, boolean failOnKafkaError, CdcLogMode logMode)
-
KafkaPublisher
public KafkaPublisher(TopicSupplier topicSupplier, org.apache.kafka.clients.producer.KafkaProducer<java.lang.String,byte[]> producer, org.apache.kafka.common.serialization.Serializer<org.apache.cassandra.cdc.msg.CdcEvent> serializer, int maxRecordSizeBytes, boolean failOnRecordTooLargeError, boolean failOnKafkaError, CdcLogMode logMode, KafkaStats kafkaStats, RecordProducer recordProducer, EventHasher eventHasher)
-
-
Method Detail
-
getType
public org.apache.cassandra.spark.data.CqlField.CqlType getType(org.apache.cassandra.cdc.api.KeyspaceTypeKey key)
-
version
public org.apache.cassandra.bridge.CassandraVersion version()
-
logger
public org.slf4j.Logger logger()
-
recordProducer
protected RecordProducer recordProducer()
-
getPayload
protected byte[] getPayload(java.lang.String topic, org.apache.cassandra.cdc.msg.CdcEvent event)
-
processEvent
public void processEvent(org.apache.cassandra.cdc.msg.CdcEvent event)
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable
-
flush
public void flush() throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
close
public void close(java.lang.Throwable t)
-
getOrBuildKafkaPrefix
protected java.lang.String getOrBuildKafkaPrefix(org.apache.cassandra.cdc.msg.CdcEvent event)
-
extractTableIdFromPublishKey
public static org.apache.cassandra.spark.utils.TableIdentifier extractTableIdFromPublishKey(java.lang.String publishKey)
-
-