Class SingleNodeKafkaResumeStrategy
- java.lang.Object
-
- org.apache.camel.processor.resume.kafka.SingleNodeKafkaResumeStrategy
-
- All Implemented Interfaces:
AutoCloseable,org.apache.camel.CamelContextAware,KafkaResumeStrategy,org.apache.camel.resume.ResumeStrategy,org.apache.camel.Service
@JdkService("kafka-resume-strategy") public class SingleNodeKafkaResumeStrategy extends Object implements KafkaResumeStrategy, org.apache.camel.CamelContextAwareA resume strategy that publishes offsets to a Kafka topic. This resume strategy is suitable for single node integrations.
-
-
Constructor Summary
Constructors Constructor Description SingleNodeKafkaResumeStrategy()SingleNodeKafkaResumeStrategy(KafkaResumeStrategyConfiguration resumeStrategyConfiguration)Builds an instance of this classSingleNodeKafkaResumeStrategy(KafkaResumeStrategyConfiguration resumeStrategyConfiguration, ExecutorService executorService)Builds an instance of this class
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuild()protected voidcheckAndSubscribe(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer, String topic)Subscribe to the topic if not subscribed yetvoidcheckAndSubscribe(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer, String topic, long remaining)Subscribe to the topic if not subscribed yetvoidclose()protected org.apache.kafka.clients.consumer.ConsumerRecords<byte[],byte[]>consume(int retries, org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer)Consumes message from the topic previously setupprotected org.apache.kafka.clients.consumer.ConsumerRecords<byte[],byte[]>consume(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer)Consumes message from the topic previously setupprotected voiddoAdd(org.apache.camel.resume.OffsetKey<?> key, org.apache.camel.resume.Offset<?> offsetValue)org.apache.camel.resume.ResumeAdaptergetAdapter()org.apache.camel.CamelContextgetCamelContext()DurationgetPollDuration()protected org.apache.kafka.clients.producer.Producer<byte[],byte[]>getProducer()org.apache.camel.resume.ResumeStrategyConfigurationgetResumeStrategyConfiguration()voidinit()voidloadCache()Loads the existing data into the cacheprotected voidpoll(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer, CountDownLatch latch)protected voidproduce(byte[] key, byte[] message, org.apache.camel.resume.ResumeStrategy.UpdateCallBack updateCallBack)Sends data to a topic.voidsetAdapter(org.apache.camel.resume.ResumeAdapter adapter)voidsetCamelContext(org.apache.camel.CamelContext camelContext)voidsetPollDuration(Duration pollDuration)voidsetResumeStrategyConfiguration(org.apache.camel.resume.ResumeStrategyConfiguration resumeStrategyConfiguration)voidstart()voidstop()voidupdateLastOffset(org.apache.camel.resume.OffsetKey<?> offsetKey, org.apache.camel.resume.Offset<?> offset)voidupdateLastOffset(org.apache.camel.resume.OffsetKey<?> offsetKey, org.apache.camel.resume.Offset<?> offset, org.apache.camel.resume.ResumeStrategy.UpdateCallBack updateCallBack)<T extends org.apache.camel.resume.Resumable>
voidupdateLastOffset(T offset)<T extends org.apache.camel.resume.Resumable>
voidupdateLastOffset(T offset, org.apache.camel.resume.ResumeStrategy.UpdateCallBack updateCallBack)
-
-
-
Constructor Detail
-
SingleNodeKafkaResumeStrategy
public SingleNodeKafkaResumeStrategy()
-
SingleNodeKafkaResumeStrategy
public SingleNodeKafkaResumeStrategy(KafkaResumeStrategyConfiguration resumeStrategyConfiguration)
Builds an instance of this class- Parameters:
resumeStrategyConfiguration- the configuration to use for this strategy instance
-
SingleNodeKafkaResumeStrategy
public SingleNodeKafkaResumeStrategy(KafkaResumeStrategyConfiguration resumeStrategyConfiguration, ExecutorService executorService)
Builds an instance of this class- Parameters:
resumeStrategyConfiguration- the configuration to use for this strategy instance
-
-
Method Detail
-
produce
protected void produce(byte[] key, byte[] message, org.apache.camel.resume.ResumeStrategy.UpdateCallBack updateCallBack)Sends data to a topic. The records will always be sent asynchronously. If there's an error, a producer error counter will be increased.- Parameters:
message- the message to send
-
doAdd
protected void doAdd(org.apache.camel.resume.OffsetKey<?> key, org.apache.camel.resume.Offset<?> offsetValue)
-
updateLastOffset
public <T extends org.apache.camel.resume.Resumable> void updateLastOffset(T offset) throws Exception- Specified by:
updateLastOffsetin interfaceorg.apache.camel.resume.ResumeStrategy- Throws:
Exception
-
updateLastOffset
public <T extends org.apache.camel.resume.Resumable> void updateLastOffset(T offset, org.apache.camel.resume.ResumeStrategy.UpdateCallBack updateCallBack) throws Exception- Specified by:
updateLastOffsetin interfaceorg.apache.camel.resume.ResumeStrategy- Throws:
Exception
-
updateLastOffset
public void updateLastOffset(org.apache.camel.resume.OffsetKey<?> offsetKey, org.apache.camel.resume.Offset<?> offset) throws Exception- Specified by:
updateLastOffsetin interfaceorg.apache.camel.resume.ResumeStrategy- Throws:
Exception
-
updateLastOffset
public void updateLastOffset(org.apache.camel.resume.OffsetKey<?> offsetKey, org.apache.camel.resume.Offset<?> offset, org.apache.camel.resume.ResumeStrategy.UpdateCallBack updateCallBack) throws Exception- Specified by:
updateLastOffsetin interfaceorg.apache.camel.resume.ResumeStrategy- Throws:
Exception
-
loadCache
public void loadCache()
Loads the existing data into the cache- Specified by:
loadCachein interfaceorg.apache.camel.resume.ResumeStrategy
-
poll
protected void poll(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer, CountDownLatch latch)
-
checkAndSubscribe
protected void checkAndSubscribe(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer, String topic)Subscribe to the topic if not subscribed yet- Parameters:
topic- the topic to consume the messages from
-
checkAndSubscribe
public void checkAndSubscribe(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer, String topic, long remaining)Subscribe to the topic if not subscribed yet- Parameters:
topic- the topic to consume the messages fromremaining- the number of messages to rewind from the last offset position (used to fill the cache)
-
consume
protected org.apache.kafka.clients.consumer.ConsumerRecords<byte[],byte[]> consume(org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer)
Consumes message from the topic previously setup- Returns:
- An instance of the consumer records
-
consume
protected org.apache.kafka.clients.consumer.ConsumerRecords<byte[],byte[]> consume(int retries, org.apache.kafka.clients.consumer.Consumer<byte[],byte[]> consumer)Consumes message from the topic previously setup- Parameters:
retries- how many times to retry consuming data from the topicconsumer- the kafka consumer object instance to use- Returns:
- An instance of the consumer records
-
getAdapter
public org.apache.camel.resume.ResumeAdapter getAdapter()
- Specified by:
getAdapterin interfaceorg.apache.camel.resume.ResumeStrategy
-
setAdapter
public void setAdapter(org.apache.camel.resume.ResumeAdapter adapter)
- Specified by:
setAdapterin interfaceorg.apache.camel.resume.ResumeStrategy
-
build
public void build()
- Specified by:
buildin interfaceorg.apache.camel.Service
-
init
public void init()
- Specified by:
initin interfaceorg.apache.camel.Service
-
stop
public void stop()
- Specified by:
stopin interfaceorg.apache.camel.Service
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceorg.apache.camel.Service- Throws:
IOException
-
start
public void start()
- Specified by:
startin interfaceorg.apache.camel.Service
-
getPollDuration
public Duration getPollDuration()
-
setPollDuration
public void setPollDuration(Duration pollDuration)
-
getProducer
protected org.apache.kafka.clients.producer.Producer<byte[],byte[]> getProducer()
-
setResumeStrategyConfiguration
public void setResumeStrategyConfiguration(org.apache.camel.resume.ResumeStrategyConfiguration resumeStrategyConfiguration)
- Specified by:
setResumeStrategyConfigurationin interfaceorg.apache.camel.resume.ResumeStrategy
-
getResumeStrategyConfiguration
public org.apache.camel.resume.ResumeStrategyConfiguration getResumeStrategyConfiguration()
- Specified by:
getResumeStrategyConfigurationin interfaceorg.apache.camel.resume.ResumeStrategy
-
getCamelContext
public org.apache.camel.CamelContext getCamelContext()
- Specified by:
getCamelContextin interfaceorg.apache.camel.CamelContextAware
-
setCamelContext
public void setCamelContext(org.apache.camel.CamelContext camelContext)
- Specified by:
setCamelContextin interfaceorg.apache.camel.CamelContextAware
-
-