Я установил 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-topics.sh. ./kakfa-topics.sh --zookeeper host:port --list
Также проверьте, что для параметра auto.create.topis.enable установлено значение true или false в конфигурации брокера.
Тема ДЕЙСТВИТЕЛЬНО появляется, когда я запускаю kafka-topics.sh с host:port. Я включил auto.create.topics.enable=true, но это ничего не изменило.
"kafka-console-producer --broker-list 0.0.0.0:9092 --topic themex" попробуйте создать таким образом
@GokulPotluri 0.0.0.0 не настоящий адрес... Это не должно работать
вы можете пинговать сервер, но как насчет темы? это существует?

"./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
@hamayun Нет... kafka-topics использует --zookeeper. Этот не является брокер, который должен быть указан через --broker-list. Это в идеале совершенно разные машины.
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.
xxx.yyy.com:9092 управляет Кафкой? Вы правильно установили advertised.listeners свойство Кафки?
Я наконец получил это работает. Проблема заключалась в том, что сервер Kafka, на котором была тема, в которую я пытался написать, имел версию 0.8.2.1, и я установил последнюю версию. Когда я установил ту же версию, kafka-console-producer.sh работал нормально БЕЗ необходимости запускать zookeeper или локальный сервер Kafka.
Я исправил это для своих приложений Springboot, добавив отдельную зависимость spring-kafka с версией, соответствующей версии сервера kafka.
"./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx" Пробовали ли вы запускать эту команду в одиночку без "echo"