Мы успешно использовали SI Kafka для нового проекта. До недавнего переключения мы использовали KafkaTopicOffsetManager для управления смещением темы наших потребителей. Чтобы не создавать дополнительных тем для каждой пары потребитель / тема и использовать мониторинг Burrow или отставания, мы решили использовать последнюю версию KafkaNativeOffsetManager, которая использует встроенное управление смещением, предоставляемое Kafka. Однако после переключения мы заметили, что потребление сообщений из целевой темы постоянно отставало. Мы знаем, что этого не произошло с KafkaTopicOffsetManager, поскольку мы использовали его в течение нескольких месяцев до перехода. Мы также провели параллельные тесты и подтвердили, что потребление сообщений происходило почти в реальном времени с созданием сообщений при использовании KafkaTopicOffsetManager, а KafkaNativeOffsetManager всегда все больше отставал. Оба менеджера смещения используют конфигурацию по умолчанию и оба фиксируют смещения после обработки сообщения (автоматическое подтверждение).
Итак, у меня действительно есть два вопроса, первый не является основным в этой публикации SO.
Первый вопрос: почему собственное управление смещением работает медленнее, чем использование темы для управления смещением?
Второй вопрос: можем ли мы настроить SI kafka так, чтобы не фиксировать смещения при успешной обработке каждого сообщения, а предоставлять другую стратегию? Мы думали, что, возможно, нам не следует делать смещения так часто, а делать их либо как пакетное обновление. Например, зафиксируйте смещения после успешной обработки 25 сообщений или через 30 секунд.
Спасибо