Когда сообщение создается в теме Кафки, оно записывается на диск.После того как сообщение было использовано, смещение этого сообщения принимается потребителем (если вы используете высокоуровневый потребительский API), однако, нет никакой функциональности, которая удаляет только те сообщения, которые были использованы (многие потребители могут подписаться ната же тема, и некоторые из них, возможно, потребляли это сообщение, в то время как другие могли бы не).
В вашем случае я бы предложил установить короткий срок хранения (который по умолчанию установлен на 7 дней), но предоставить разумное количество времени для того, чтобы ваш потребитель мог использовать сообщения.Для этого вам просто нужно настроить следующий параметр в server.properties
:
log.retention.ms=X
Обратите внимание, что нет никаких гарантий, что удаленные сообщения были успешно использованы вашими потребителями.Например, если вы установите период хранения равным 2 секундам (т.е. log.retention.ms=2000
), и ваш потребитель выйдет из строя, то каждое сообщение, отправленное в тему, пока потребитель не работает, будет потеряно.