Package org.nuxeo.lib.stream.log.kafka
Class KafkaLogAppender<M extends Externalizable>
java.lang.Object
org.nuxeo.lib.stream.log.kafka.KafkaLogAppender<M>
- All Implemented Interfaces:
 AutoCloseable,CloseableLogAppender<M>,LogAppender<M>
public class KafkaLogAppender<M extends Externalizable>
extends Object
implements CloseableLogAppender<M>
Apache Kafka implementation of Log.
- Since:
 - 9.3
 
- 
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprotected final Propertiesprotected final Nameprotected org.apache.kafka.clients.producer.KafkaProducer<String,org.apache.kafka.common.utils.Bytes> protected static final AtomicIntegerprotected final Propertiesprotected final NameResolverprotected final intprotected final ConcurrentLinkedQueue<KafkaLogTailer<M>>protected final String - 
Method Summary
Modifier and TypeMethodDescriptionAppend a message into a partition, returnsLogOffsetposition of the message.Same asLogAppender.append(int, Externalizable), the queue is chosen using a hash of parameters "key".voidclose()booleanclosed()Returnstrueif the appender has been closed by the manager.getCodec()Returns the codec used to write record.getTopic()protected booleanisProcessed(Name group, org.apache.kafka.common.TopicPartition topicPartition, long offset) name()Returns the Log's name.static <M extends Externalizable>
KafkaLogAppender<M>open(Codec<M> codec, NameResolver resolver, Name name, Properties producerProperties, Properties consumerProperties) intsize()Returns the number of partitions in the Log.toString()booleanWait for consumer to process a message up to the offset. 
- 
Field Details
- 
topic
 - 
consumerProps
 - 
producerProps
 - 
size
protected final int size - 
tailers
 - 
name
 - 
codec
 - 
encodingCodec
 - 
resolver
 - 
producer
protected org.apache.kafka.clients.producer.KafkaProducer<String,org.apache.kafka.common.utils.Bytes> producer - 
closed
protected boolean closed - 
PRODUCER_CLIENT_ID_SEQUENCE
 
 - 
 - 
Method Details
- 
open
public static <M extends Externalizable> KafkaLogAppender<M> open(Codec<M> codec, NameResolver resolver, Name name, Properties producerProperties, Properties consumerProperties)  - 
name
Description copied from interface:LogAppenderReturns the Log's name.- Specified by:
 namein interfaceLogAppender<M extends Externalizable>
 - 
getTopic
 - 
size
public int size()Description copied from interface:LogAppenderReturns the number of partitions in the Log.- Specified by:
 sizein interfaceLogAppender<M extends Externalizable>
 - 
append
Description copied from interface:LogAppenderSame asLogAppender.append(int, Externalizable), the queue is chosen using a hash of parameters "key".- Specified by:
 appendin interfaceLogAppender<M extends Externalizable>
 - 
append
Description copied from interface:LogAppenderAppend a message into a partition, returnsLogOffsetposition of the message. This method is thread safe, a queue can be shared by multiple producers.- Specified by:
 appendin interfaceLogAppender<M extends Externalizable>- Parameters:
 partition- index lower thanLogAppender.size()
 - 
append
 - 
waitFor
Description copied from interface:LogAppenderWait for consumer to process a message up to the offset. The message is processed if a consumer of the group commits a greater or equals offset. Returntrueif the message has been consumed,falsein case of timeout.- Specified by:
 waitForin interfaceLogAppender<M extends Externalizable>- Throws:
 InterruptedException
 - 
closed
public boolean closed()Description copied from interface:LogAppenderReturnstrueif the appender has been closed by the manager.- Specified by:
 closedin interfaceLogAppender<M extends Externalizable>
 - 
toString
 - 
getCodec
Description copied from interface:LogAppenderReturns the codec used to write record. A null codec is the default legacy encoding.- Specified by:
 getCodecin interfaceLogAppender<M extends Externalizable>
 - 
isProcessed
protected boolean isProcessed(Name group, org.apache.kafka.common.TopicPartition topicPartition, long offset)  - 
close
public void close()- Specified by:
 closein interfaceAutoCloseable- Specified by:
 closein interfaceCloseableLogAppender<M extends Externalizable>
 
 -