Не могу писать в кафку, брокеры не работают - PullRequest
0 голосов
/ 28 мая 2020

Я запускаю Kafka локально. Когда я пытаюсь написать в Kafka, я получаю следующую ошибку:

kafkacat -b localhost:9092 -t req -T -P -l  msgs
hello
world
% ERROR: Local: Broker transport failure: localhost:9092/bootstrap: Connect to ipv6#[::1]:9092 failed: Connection refused (after 1ms in state CONNECT)
% ERROR: Local: All broker connections are down: 1/1 brokers are down : terminating

У меня Kafka прослушивает порт 9092:

bash-3.2$ netstat -an | grep 9092
tcp4       0      0  127.0.0.1.9092         127.0.0.1.50994        ESTABLISHED
tcp4       0      0  127.0.0.1.50994        127.0.0.1.9092         ESTABLISHED
tcp4       0      0  127.0.0.1.9092         127.0.0.1.50986        ESTABLISHED
tcp4       0      0  127.0.0.1.50986        127.0.0.1.9092         ESTABLISHED
tcp4       0      0  127.0.0.1.9092         127.0.0.1.50984        ESTABLISHED
tcp4       0      0  127.0.0.1.50984        127.0.0.1.9092         ESTABLISHED
tcp4       0      0  127.0.0.1.9092         *.*                    LISTEN
bash-3.2$
bash-3.2$ telnet 127.0.0.1 9092
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

И вот соответствующие части конфигурации kafka:

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0

# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured.  Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
advertised.listeners=PLAINTEXT://127.0.0.1:9092
bootstrap.servers=127.0.0.1:9092

Что я делаю не так? Почему я не могу записать несколько записей в свой локальный Kafka?

PS

Когда я использую скрипты, которые поставляются с Kafka, я могу создать topi c:

/usr/local/bin/kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Hoffman02
Created topic Hoffman02.

Но когда я использую kafkacat kafkacat -b localhost:9092 -t Hoffman04 -P, он зависает навсегда, но я все же могу найти файл Hoffman04 в папке журналов ls -lrt /usr/local/var/lib/kafka-logs:

drwxr-xr-x  6 jenia  admin   192 28 May 11:17 Hoffman04-0

1 Ответ

0 голосов
/ 29 мая 2020

В зависимости от вашей ОС (в частности, OSX), localhost может разрешать адреса как ipv4, так и ipv6, в то время как ваш брокер привязывается только к адресу IPv4. Вы можете ограничить семейство адресов IPv4 в kafkacat, добавив -X broker.address.family=v4 в командную строку kafkacat.

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