Может ли Kafka ProducerInterceptor фильтровать записи? - PullRequest
0 голосов
/ 18 февраля 2019

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

Из того, что я вижу, ConsumerInterceptor позволяет фильтровать записи, так как он возвращает объект ConsumerRecords , и реализация может удалять (т.е. подвергать цензуре) элементы из класса контейнера до того, какпередача записей потребителю.

A ProducerInterceptor только принимает и возвращает ProducerRecord , а не что-то вроде Optional<ProducerRecord>.Что произойдет, если запись, возвращаемая этим методом, будет нулевой?Вариант использования состоит в том, чтобы предотвратить запись записей в Kafka. Поддерживается ли это простым отбрасыванием записываемых записей, возвращая значение null, или придется изменить объект ввода и обнулить его поля?

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете получить исключение SerializationException, так как перехват произойдет до сериализации, если вам нужно сделать это при отправке.Если вы работаете с нулевым случаем, это может сработать для вас, но вам нужно решить, правильно ли это делать.Если вы хотите отправить пустую запись в Kafka в случае фильтрации, то это имеет смысл.Если вы просто хотите удалить запись, лучше просто поместить логику фильтрации в самого производителя, а не перехватывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...