You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
KafkaConsumer: back pressure + improved read speed (#139)
* Add Back Pressure to `KafkaConsumer`
Motivation:
Closes#131.
Modifications:
* re-add `KafkaConsumerConfiguration.backPressureStrategy:
BackPressureStrategy`, currently allowing users to add
high-low-watermark backpressure to their `KafkaConsumer`s
* `KafkaConsumer`:
* make `KafkaConsumerMessages` use `NIOAsyncSequenceProducerBackPressureStrategies.HighLowWatermark`
as backpressure strategy
* remove `rd_kafka_poll_set_consumer` -> use two separate queues for
consumer events and consumer messages so we can exert backpressure
on the consumer message queue
* remove idle polling mechanism where incoming messages were
discarded when `KafkaConsumerMessages` was terminated -> we now
have to independent queues
* rename `.pollForAndYieldMessage` -> `.pollForEventsAndMessages`
* refactor `State` and add `ConsumerMessagesSequenceState`
* `KafkaProducer`:
* rename `.consumptionStopped` -> `.eventConsumptionFinished`
* `RDKafkaClient`:
* bring back `consumerPoll()`
* `eventPoll()`: only queue main queue for events since consumer messages are now handled on a different queue
* KafkaConsumer: two state machines
Modifications:
* have two state machines:
1. consumer state itself
2. state of consumer messages async sequence
* KafkaConsumer: merge both state machines
* Refactor + DocC
* Review Franz + Blindspot
Modifications:
* `KafkaConsumer`:
* end consumer message poll loop when async sequence drops message
* do not sleep if we picked up reading new messages again after we
finished reading a partition
* `messageRunLoop`:
* fix `fatalError` where `newMessagesProduced()` is invoked after `stopProducing()`
* add func `batchConsumerPoll` that reads a batch of messages to
avoid acquiring the lock in `messageRunLoop` too often
0 commit comments