Class KafkaPublisher

  • All Implemented Interfaces:
    java.lang.AutoCloseable

    public class KafkaPublisher
    extends java.lang.Object
    implements java.lang.AutoCloseable
    • 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
      void close()  
      void close​(java.lang.Throwable t)  
      static org.apache.cassandra.spark.utils.TableIdentifier extractTableIdFromPublishKey​(java.lang.String publishKey)  
      void flush()  
      protected java.lang.String getOrBuildKafkaPrefix​(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.CqlType getType​(org.apache.cassandra.cdc.api.KeyspaceTypeKey key)  
      org.slf4j.Logger logger()  
      void processEvent​(org.apache.cassandra.cdc.msg.CdcEvent event)  
      protected RecordProducer recordProducer()  
      org.apache.cassandra.bridge.CassandraVersion version()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • maxRecordSizeBytes

        protected int maxRecordSizeBytes
      • failOnRecordTooLargeError

        protected boolean failOnRecordTooLargeError
      • failOnKafkaError

        protected boolean failOnKafkaError
      • 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()
      • 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:
        close in interface java.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)