#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 также не имеет понятия о маршрутизаторе.