Class DefaultKafkaConsumer<T>
- java.lang.Object
-
- org.kie.hacep.core.infra.consumer.DefaultKafkaConsumer<T>
-
- All Implemented Interfaces:
org.kie.hacep.core.infra.consumer.EventConsumer,org.kie.hacep.core.infra.election.LeadershipCallback
public class DefaultKafkaConsumer<T> extends Object implements org.kie.hacep.core.infra.consumer.EventConsumer
The default consumer relies on the Consumer thread and is based on the loop around poll method.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDefaultKafkaConsumer.PolledTopic
-
Field Summary
Fields Modifier and Type Field Description protected org.kie.hacep.consumer.DroolsConsumerHandlerconsumerHandlerprotected org.kie.hacep.util.ConsumerUtilsCoreconsumerUtilsCoreprotected org.kie.hacep.EnvConfigenvConfigprotected org.apache.kafka.clients.consumer.Consumer<String,T>kafkaConsumerprotected org.apache.kafka.clients.consumer.Consumer<String,T>kafkaSecondaryConsumerstatic StringPRIMARY_CONSUMERprotected org.kie.remote.impl.producer.Producerproducerstatic StringSECONDARY_CONSUMERprotected DefaultSessionSnapShootersnapShooterprotected SnapshotOnDemandUtilssnapshotOnDemandUtils
-
Constructor Summary
Constructors Constructor Description DefaultKafkaConsumer()DefaultKafkaConsumer(org.kie.hacep.EnvConfig config, org.kie.remote.impl.producer.Producer producer, SnapshotOnDemandUtils snapshotOnDemandUtils)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanaskAndProcessSnapshotOnDemand(org.kie.hacep.core.infra.SnapshotInfos snapshotInfos)protected voidassign()protected voidassignAndStartConsume()protected voidassignAsALeader()protected voidassignConsumer(org.apache.kafka.clients.consumer.Consumer<String,T> kafkaConsumer, String topic)protected voidassignReplica()protected voidconsume()protected voidconsumeControlFromBufferAsAReplica()protected voidconsumeEventsFromBufferAsALeader()protected voidconsumeEventsFromBufferAsAReplica()protected voiddefaultProcessAsAReplica()protected voiddefaultProcessAsLeader()protected voidenableConsumeAndStartLoop(org.kie.hacep.core.infra.election.State state)protected voidhandleSnapshotBetweenIteration(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)voidinitConsumer(org.kie.hacep.core.infra.consumer.ConsumerHandler consumerHandler)voidinitKafkaConsumer()voidpoll()protected voidpollControl()protected voidpollEvents()protected voidprocessControlAsAReplica(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)protected voidprocessEventsAsAReplica(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)protected voidprocessLeader(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)protected voidrestart(org.kie.hacep.core.infra.election.State state)protected voidrestartConsumer()protected voidsaveOffset(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record, org.apache.kafka.clients.consumer.Consumer<String,T> kafkaConsumer)protected voidsetLastProcessedKey()protected voidsettingsOnAEmptyControlTopic(org.kie.remote.message.ControlMessage lastWrapper)protected voidstartConsume()voidstop()protected voidstopConsume()voidupdateKafkaSecondaryConsumer()protected voidupdateOnRunningConsumer(org.kie.hacep.core.infra.election.State state)voidupdateStatus(org.kie.hacep.core.infra.election.State state)
-
-
-
Field Detail
-
SECONDARY_CONSUMER
public static final String SECONDARY_CONSUMER
- See Also:
- Constant Field Values
-
PRIMARY_CONSUMER
public static final String PRIMARY_CONSUMER
- See Also:
- Constant Field Values
-
kafkaSecondaryConsumer
protected org.apache.kafka.clients.consumer.Consumer<String,T> kafkaSecondaryConsumer
-
consumerHandler
protected org.kie.hacep.consumer.DroolsConsumerHandler consumerHandler
-
snapShooter
protected DefaultSessionSnapShooter snapShooter
-
envConfig
protected org.kie.hacep.EnvConfig envConfig
-
producer
protected org.kie.remote.impl.producer.Producer producer
-
consumerUtilsCore
protected org.kie.hacep.util.ConsumerUtilsCore consumerUtilsCore
-
snapshotOnDemandUtils
protected SnapshotOnDemandUtils snapshotOnDemandUtils
-
-
Constructor Detail
-
DefaultKafkaConsumer
public DefaultKafkaConsumer()
-
DefaultKafkaConsumer
public DefaultKafkaConsumer(org.kie.hacep.EnvConfig config, org.kie.remote.impl.producer.Producer producer, SnapshotOnDemandUtils snapshotOnDemandUtils)
-
-
Method Detail
-
initKafkaConsumer
public void initKafkaConsumer()
-
updateKafkaSecondaryConsumer
public void updateKafkaSecondaryConsumer()
-
initConsumer
public void initConsumer(org.kie.hacep.core.infra.consumer.ConsumerHandler consumerHandler)
- Specified by:
initConsumerin interfaceorg.kie.hacep.core.infra.consumer.EventConsumer
-
restartConsumer
protected void restartConsumer()
-
stop
public void stop()
- Specified by:
stopin interfaceorg.kie.hacep.core.infra.consumer.EventConsumer
-
updateStatus
public void updateStatus(org.kie.hacep.core.infra.election.State state)
- Specified by:
updateStatusin interfaceorg.kie.hacep.core.infra.election.LeadershipCallback
-
askAndProcessSnapshotOnDemand
protected boolean askAndProcessSnapshotOnDemand(org.kie.hacep.core.infra.SnapshotInfos snapshotInfos)
-
assign
protected void assign()
-
assignAsALeader
protected void assignAsALeader()
-
assignReplica
protected void assignReplica()
-
assignConsumer
protected void assignConsumer(org.apache.kafka.clients.consumer.Consumer<String,T> kafkaConsumer, String topic)
-
poll
public void poll()
- Specified by:
pollin interfaceorg.kie.hacep.core.infra.consumer.EventConsumer
-
updateOnRunningConsumer
protected void updateOnRunningConsumer(org.kie.hacep.core.infra.election.State state)
-
restart
protected void restart(org.kie.hacep.core.infra.election.State state)
-
enableConsumeAndStartLoop
protected void enableConsumeAndStartLoop(org.kie.hacep.core.infra.election.State state)
-
setLastProcessedKey
protected void setLastProcessedKey()
-
settingsOnAEmptyControlTopic
protected void settingsOnAEmptyControlTopic(org.kie.remote.message.ControlMessage lastWrapper)
-
assignAndStartConsume
protected void assignAndStartConsume()
-
consume
protected void consume()
-
defaultProcessAsLeader
protected void defaultProcessAsLeader()
-
processLeader
protected void processLeader(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)
-
consumeEventsFromBufferAsALeader
protected void consumeEventsFromBufferAsALeader()
-
handleSnapshotBetweenIteration
protected void handleSnapshotBetweenIteration(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)
-
defaultProcessAsAReplica
protected void defaultProcessAsAReplica()
-
consumeEventsFromBufferAsAReplica
protected void consumeEventsFromBufferAsAReplica()
-
consumeControlFromBufferAsAReplica
protected void consumeControlFromBufferAsAReplica()
-
processEventsAsAReplica
protected void processEventsAsAReplica(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)
-
processControlAsAReplica
protected void processControlAsAReplica(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record)
-
saveOffset
protected void saveOffset(org.apache.kafka.clients.consumer.ConsumerRecord<String,T> record, org.apache.kafka.clients.consumer.Consumer<String,T> kafkaConsumer)
-
startConsume
protected void startConsume()
-
stopConsume
protected void stopConsume()
-
pollControl
protected void pollControl()
-
pollEvents
protected void pollEvents()
-
-