Сообщения кафки не удаляются - PullRequest
1 голос
/ 12 июня 2019

Я новичок в Кафке. Я делаю некоторый эксперимент относительно того, как удалить сообщения в теме кафки. Я обнаружил, что если мы установим свойство «retention.ms» для темы с меньшим значением времени, скажем, 1 секунду, то через 1 секунду сообщения в теме будут очищены, как я понимаю.

Я запустил 1 продюсера, который выдал несколько сообщений в тему и через некоторое время остановил его. В то же время я запустил консольный потребитель, чтобы он получал сгенерированные сообщения. Я запустил другую потребительскую консоль на ту же тему по истечении времени хранения, скажем, через 1-2 минуты. Но и к моему удивлению я смог получить сообщения на эту тему. Запустил консоль потребителя через 2 минуты снова, когда я не увидел ни одного сообщения в теме. Кафке понадобилось почти 3-4 минуты, чтобы очистить сообщения. Нужны ли какие-либо дополнительные настройки в Kafka для мгновенной очистки сообщений?

1 Ответ

2 голосов
/ 14 июня 2019

Настройка retention.ms не гарантирует, что сообщение будет немедленно удалено из темы. Даже если он будет помечен для удаления.

Если ваше сообщение представлено в виде пары, то установка времени удержания недостаточно хороша. Вы также должны установить следующие параметры:

log.cleanup.policy
log.cleaner.min.compaction.lag.ms
log.cleaner.enable

Другой набор параметров контролирует удаление сообщения в случае, если они присутствуют в вашей конфигурации:

log.retention.ms
log.roll.hours
...