Конфлюентный кафка REST-прокси, возвращающий пустые зафиксированные смещения
Я использую Confluent REST proxy v.3.2.0, и недавно я переключился с auto.commit.enable=true на false, и теперь я активно получаю и фиксирую смещения. Цель состоит в том, чтобы полагаться на зафиксированное смещение каждый раз, когда я создаю потребителей, а не на потребляемое смещение. Причина этого заключается в том, что для нас очень важно не пропускать обработку сообщений в случае сбоя микросервиса после потребления сообщений, но в середине их обработки. Смещения обновляются после их успешной обработки с использованием POST ==> /consumer /(строка: имя группы)/instances/(строка: экземпляр) / смещения. Для нас переработка сообщений не является проблемой, мы получаем тот же результат, поэтому перемотка допускается.
Проблема в том, что мы получаем пустые смещения в ответе на вызов: GET ==> /consumer /(строка: имя_группы)/instances/(строка: экземпляр) / смещения
Почему я получаю пустые смещения в ответ и что я могу сделать, чтобы исправить это программно? Я попытался позвонить в POST ==> / позиции / начало, но это не помогло, так как в следующий раз я все еще получаю пустые смещения.
1 ответ
При настройках по умолчанию смещения истекают через 24 часа, поэтому, если вы хотите сохранить свою позицию в течение более длительных периодов бездействия, вам нужно увеличить offsets.retention.minutes
параметр в брокерах server.properties
Конфигурационный файл
В противном случае, если смещения истекают, потребитель переходит в начало или конец темы, в зависимости от конфигурации параметра политики сброса. auto.offset.reset
который настраивается в файле kafka-rest.properties.