Да, можно вручную назначить партиции и управлять offsets без автоматической consumer group. Тогда распределение, сохранение прогресса и восстановление становятся задачей приложения.
Можно ли читать Kafka без consumer group? Что произойдёт при подключении, перезапуске и отсутствии явно заданного offset? Для каких задач это нужно?
Да, можно вручную назначить партиции и управлять offsets без автоматической consumer group. Тогда распределение, сохранение прогресса и восстановление становятся задачей приложения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да, можно вручную назначить партиции и управлять offsets без автоматической consumer group. Тогда распределение, сохранение прогресса и восстановление становятся задачей приложения.
В Java KafkaConsumer используют assign, а позицию задают seek. Без group.id не используют Kafka-based commits и отключают auto-commit; offsets можно хранить отдельно. Если валидная позиция не задана, действует соответствующая политика reset, а не универсальное «читать сначала».
После перезапуска нужно восстановить собственный прогресс. Подход полезен для replay, диагностики и специализированной обработки; автоматической ребалансировки при появлении новых исполнителей не будет.
Источник: Документация Apache Kafka, Документация Apache Kafka.