Я использую librdkafka
C API потребителя (в частности, rd_kafka_consumer_poll
для чтения, и я звонил rd_kafka_poll_set_consumer
до этого)
Проблема, которую я вижу, заключается в том, что в моем тесте Google я выполняю следующие действия
написать 3 сообщения для kafka
init / start потребитель kafka (rd_kafka_consumer_poll
)
inrebalance_cb
Я установил смещение каждого раздела на RD_KAFKA_OFFSET_STORED
и назначил их для обработки
На данный момент я считаю, что он должен прочитать 3 сообщения, но он читает только последнее сообщение, но на удивление смещение для каждогораздел уже обновлен!
Я что-то упускаю при использовании Kafka?
И еще один вопрос: я изначально думал, что сохраненное смещение находится в брокере Kafka и существует уникальныйсмещение для темы + идентификатор группы потребителей + комбинация разделов.
Так что я думал, что разные группы потребителей, читающие одну и ту же тему, должны иметь разное смещение.
Однако это не похоже на случай.Я всегда читаю с одного и того же смещения, когда используются разные группы потребителей.
Я подозреваю, что это может быть связано со смещенным коммитом, но не знаю, где с этим справиться.
Есть идеи?