librdkafka
The Apache Kafka C/C++ client library
|
KafkaConsunmer: Rebalance callback class More...
#include <rdkafkacpp.h>
Public Member Functions | |
virtual void | rebalance_cb (RdKafka::KafkaConsumer *consumer, RdKafka::ErrorCode err, std::vector< TopicPartition * > &partitions)=0 |
Group rebalance callback for use with RdKafka::KafkaConsunmer. More... | |
KafkaConsunmer: Rebalance callback class
|
pure virtual |
Group rebalance callback for use with RdKafka::KafkaConsunmer.
Registering a rebalance_cb
turns off librdkafka's automatic partition assignment/revocation and instead delegates that responsibility to the application's rebalance_cb
.
The rebalance callback is responsible for updating librdkafka's assignment set based on the two events: RdKafka::ERR__ASSIGN_PARTITIONS and RdKafka::ERR__REVOKE_PARTITIONS but should also be able to handle arbitrary rebalancing failures where err
is neither of those.
Without a rebalance callback this is done automatically by librdkafka but registering a rebalance callback gives the application flexibility in performing other operations along with the assinging/revocation, such as fetching offsets from an alternate location (on assign) or manually committing offsets (on revoke).
The following example show's the application's responsibilities: