Запуск kafka-console-producer.sh на другой сервер

Я установил Apache Kafka на свой сервер Centos. Я просто пытаюсь написать сообщение в тему на другом сервере. Итак, после установки я НЕ запускал zookeeper или сервер Kafka, а просто набрал команду:

echo testing | ./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx

Я могу пропинговать xxx.yyy.com со своего сервера. Когда я запускаю это, я получаю эту ошибку:

ERROR Error when sending message to topic cds_organization with key: null, value: 7 bytes with error:
(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Topic topicx not present in metadata after 60000 ms.

Итак, в этом случае мне все еще нужно запускать zookeeper и/или сервер kafka?

"./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx" Пробовали ли вы запускать эту команду в одиночку без "echo"

Gokul Potluri 23.04.2019 20:21

Тот же результат, что и раньше

hamayoun 23.04.2019 20:38

Пожалуйста, проверьте, существует ли тема, используя команду kafka-topics.sh. ./kakfa-topics.sh --zookeeper host:port --list

Gokul Potluri 23.04.2019 20:48

Также проверьте, что для параметра auto.create.topis.enable установлено значение true или false в конфигурации брокера.

Gokul Potluri 23.04.2019 20:49

Тема ДЕЙСТВИТЕЛЬНО появляется, когда я запускаю kafka-topics.sh с host:port. Я включил auto.create.topics.enable=true, но это ничего не изменило.

hamayoun 23.04.2019 21:00

"kafka-console-producer --broker-list 0.0.0.0:9092 --topic themex" попробуйте создать таким образом

Gokul Potluri 23.04.2019 21:43

@GokulPotluri 0.0.0.0 не настоящий адрес... Это не должно работать

OneCricketeer 23.04.2019 22:49

вы можете пинговать сервер, но как насчет темы? это существует?

Deadpool 23.04.2019 23:20
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
0
8
2 258
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

"./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic темаx", ваша команда пропустила эту часть, ваш брокер прослушивает порт 2181, обычно это будет 9092.
Измените запятую на "./kafka-console-producer.sh --broker-list xxx.yyy.com:9092 --topic темаx" и повторите попытку.

Да, он прослушивает 2181, когда я запускаю kafka-topics с 2181, он показывает тему: ./kafka-topics.sh --describe --topic themex --zookeeper xxx.yyy.com:2181 :topicx PartitionCount:1 ReplicationFactor:1 Конфигурации: Тема: TopicX Раздел: 0 Лидер: 1 Реплики: 1 Isr: 1

hamayoun 23.04.2019 22:01

@hamayun Нет... kafka-topics использует --zookeeper. Этот не является брокер, который должен быть указан через --broker-list. Это в идеале совершенно разные машины.

OneCricketeer 23.04.2019 22:44

I did NOT start the zookeeper or the Kafka server, but simply typed in the command:

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

do I still need to start the zookeeper and/or kafka server

Да, вам нужно, чтобы оба были запущены, но не обязательно на одних и тех же машинах.


Как уже упоминалось, порт Kafka по умолчанию — 9092. Zookeeper — 2181. Кажется, вы их перепутали.

Команда описания тем (kafka-topics) выполняется через Zookeeper Только (до Кафки 2.2).

Для создания вы должны использовать хост и порт Kafka (начиная с Kafka 0.9).

Я запустил на своем сервере и zookeeper, и kafka. Результат, когда я пытаюсь запустить «эхо-тестирование | ./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic themex», остается прежним, даже когда я меняю порт на 9092.

hamayoun 23.04.2019 23:13

xxx.yyy.com:9092 управляет Кафкой? Вы правильно установили advertised.listeners свойство Кафки?

OneCricketeer 23.04.2019 23:15
Ответ принят как подходящий

Я наконец получил это работает. Проблема заключалась в том, что сервер Kafka, на котором была тема, в которую я пытался написать, имел версию 0.8.2.1, и я установил последнюю версию. Когда я установил ту же версию, kafka-console-producer.sh работал нормально БЕЗ необходимости запускать zookeeper или локальный сервер Kafka.

Я исправил это для своих приложений Springboot, добавив отдельную зависимость spring-kafka с версией, соответствующей версии сервера kafka.

Другие вопросы по теме