2017-01-27 5 views
1

Можно ли проверять/фильтровать сообщения, отправляемые в тему Кафки?Предварительная проверка сообщений, отправленных на тему Кафки

Как, я хочу, чтобы только достоверные клиенты/производители отправляли сообщения по моей теме. Я могу, конечно, выполнить проверку на стороне потребителя, отбросив недействительные сообщения на основе определенных параметров/критериев. Но, что, если я хочу сделать это, прежде чем сообщения будут записаны в тему.

Скажем, Kafka получает сообщение, выполняет некоторую проверку и, соответственно, решает, нужно ли его отбрасывать или записывать в тему. Это возможно?

Благодаря

+1

Да, вы можете проверить подлинность соединений от клиентов до брокера Kafka. Таким образом, только «действительные» клиенты могут подключаться и отправлять сообщения. http://docs.confluent.io/2.0.0/kafka/security.html –

ответ

4

Короткий ответ - текущие версии Кафки не имеет никакой поддержки такой функциональности из коробки. А поскольку производители Kafka предназначены для общения с несколькими брокерами в течение одного сеанса, нет простого способа реализовать такую ​​специальную фильтрацию. Учитывая, что сказал, есть несколько разумных вариантов еще существует:

  1. Использование 2 темы: одна «общественность» тема открыта для всех, что позволит все сообщения, а другой непубличный «фильтруется» тему, которая будет заполненный вашим собственным приложением данными из «public» после применения ваших правил фильтрации.
  2. Если вам абсолютно необходимо проверить входящие сообщения, прежде чем писать их вниз, то вы можете скрыть фактические брокер Кафки за какой-либо формой прокси-приложение, которое будет делать проверку, прежде чем писать сообщения в Кафка