Передача данных маршрутизатора в распределенную систему обмена сообщениями

#networking #message-queue #distributed-computing #flume #apache-kafka

#сеть #очередь сообщений #распределенные вычисления #поток #apache-kafka

Вопрос:

Запрос: создание интерфейса маршрутизатора в качестве производителя кластера kafka.

Проблема: интерфейс моего маршрутизатора пытается передать данные на порт, на котором запущена kafka. (по умолчанию 9092).

Вопрос 1. Но может ли брокер kafka принять эти данные без создания темы?

Q. 2 Может ли пользователь kafka извлекать данные без указания темы?

       If yes, How ?

      If not, What is work around this and how can i achieve this ?
  

1-е редактирование:

Я только что проверил, что в конфигурациях брокера Kafka есть поле «auto.create.topics.enable». Если я установлю это как true и отправлю некоторые случайные данные на порт kafka без использования команды «kafka-console-producer», примет ли это брокер kafka?

Спасибо.

Ответ №1:

может ли брокер kafka принять эти данные без создания темы

По умолчанию Kafka broker настроен таким образом, что он создает тему, если вы пытаетесь передать ей данные, а она еще не существует. Это поведение контролируется auto.create.topics.enable параметром (с true помощью / false values ).

Но брокер вообще не может принимать данные без создания темы. И да, название темы должно быть указано на стороне производителя.

Может ли потребитель kafka извлекать данные без указания темы

Нет, это невозможно.

Если нет, то как обойти это и как я могу этого добиться?

Вам нужно каким-то образом получить название темы, например, перечислив все темы через api и выбрав правильный, или вы можете напрямую копаться во внутренних компонентах zookeeper, хотя я бы не рекомендовал вам это делать.

Я только что проверил, что в конфигурациях брокера Kafka есть поле «auto.create.topics.enable». Если я установлю это как true и отправлю некоторые случайные данные на порт kafka без использования команды «kafka-console-producer», примет ли это брокер kafka?

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

Комментарии:

1. На самом деле маршрутизатор просто знает IP-адрес и номер порта брокера kafka. Он отправляет UDP-пакеты, и я хочу их использовать. Но маршрутизатор не может указать название темы при создании! Не могли бы вы просветить меня по этому поводу?

2. Немного неясно, что вы имеете в виду, говоря » маршрутизатор «. Вы имеете в виду устройство сетевого маршрутизатора ? Вы собираетесь перехватывать трафик, отправляемый через него, или что? О каких UDP-пакетах вы конкретно говорите? Kafka использует TCP в качестве транспорта. Flume также не имеет понятия о маршрутизаторе.