Допустим, у меня нет доступа к набору производителей, которые фиксируют интересующий раздел, но я просто контролирую группу потребителей C ++.
Поскольку я запускаю тесты для сложной программы, я хотел бы знать разницу между смещением, которое получают мои потребители, и общим смещением, хранящимся в разделе.
например., >> reading message #1234 of 5678 total in partition 0 of topic foo
Я неправильно понял цель RdKafka::Consumer->outq_len()
а также RdKafka::Topic->OFFSET_END
, потому что они казаться всегда равно 0
а также -1
соответственно.
Как я могу приобрести 5678
ценность моего примера?
Вам необходимо подписаться на librdkafka
статистику, чтобы получить обновленное представление о задержке вашего потребителя.
Зарегистрировать Event
Класс обратного вызова и регулярно звонить poll()
на вашей ручке, проверьте EVENT_STATS
а затем проанализируйте соответствующее сообщение JSON и найдите lo_offset
, hi_offset
а также consumer_lag
,