Kafka обычно удаляет старые сегменты по retention.ms или retention.bytes при cleanup.policy=delete. Потребление сообщений само по себе не удаляет их из лога.
Как очищался большой лог событий Kafka: была ли настроена политика retention?
Kafka обычно удаляет старые сегменты по retention.ms или retention.bytes при cleanup.policy=delete. Потребление сообщений само по себе не удаляет их из лога.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Kafka обычно удаляет старые сегменты по retention.ms или retention.bytes при cleanup.policy=delete. Потребление сообщений само по себе не удаляет их из лога.
На интервью назовите реальные настройки топика, а не предполагаемые defaults. Ограничение размера относится к партиции; удаление выполняется сегментами, поэтому срок хранения не является точным таймером для каждой записи.
Compaction решает другую задачу: сохраняет актуальные значения по ключам, а не весь журнал. Согласуйте retention с допустимым отставанием consumer-ов и потребностью в повторной обработке. Следите за размером диска, lag и скоростью очистки. Уменьшение retention может необратимо удалить данные, которые ещё нужны потребителю.
Источник: Документация Apache Kafka.