Java Spring boot kafka удалить сообщение из темы со смещением

Я пытаюсь создать приложение для весенней загрузки (java), которое должно иметь возможность удалять сообщение из темы kafka, указав его номер смещения и раздел. Я исследовал классы загрузочного пакета java или spring, которые могут это сделать, но я нашел только что-то вроде этого: Удалить сообщения из темы в Apache Kafka есть клиент java kafka, у которого есть метод для удаления ВСЕХ сообщений ПЕРЕД смещением, но я могу удалить только одно. Это возможно?

заранее спасибо


person Gabriel García Garrido    schedule 08.09.2020    source источник
comment
Отвечает ли это на ваш вопрос? Удалить отдельные записи из темы кафка Это голая кафка, а не напрямую доступно в Java API. Но увидеть ответ в большинстве случаев вы не можете, тогда это применимо и к Java.   -  person GPI    schedule 08.09.2020
comment
Его нужно удалить, я не могу просто оставить сообщение как нулевое, это также нужно сделать на Java ????   -  person Gabriel García Garrido    schedule 08.09.2020
comment
Кто вам выдал это требование, и они понимают, как работает кафка?   -  person OneCricketeer    schedule 08.09.2020


Ответы (1)


Если у вас есть только номер смещения и раздел и вы можете просто удалить запись по этому смещению, вы не можете гарантировать, что все потребители будут иметь согласованное в конечном итоге представление, поэтому это не стандартная операция.

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

Запись с пустым телом останется в теме, как указано в сроке хранения при удалении. Обычно это больше, чем обычное время хранения, чтобы у потребителей было достаточно времени для удаления устаревших записей. По истечении срока хранения при удалении и исходная запись, и нулевая запись будут удалены путем сжатия журнала.

person GreyFairer    schedule 08.09.2020