java - Kafka 错误连接到节点 ubuntukafka :9092 (id: 0 rack: null) (org. apache.kafka.clients.NetworkClient) java.net.UnknownHostException:

标签 java python-3.x apache-kafka virtualbox

我在 VirtualBox guest 虚拟机上有两台服务器,每台都是 ubuntu。我可以通过 SSH 从我的主机连接到两台机器,并在两台机器之间进行 SSH,以便它们都拥有 natnetwork。

我按照此处所述在一台服务器 kafka 上运行:

https://kafka.apache.org/quickstart

所以我提出了单节点zookeper 卡夫卡随后开始。我添加了测试主题。 (全部在 MachineA . 10.75.1.247 上)

我正在尝试从另一台机器上列出该节点上的主题:

bin/kafka-topics.sh --list --bootstrap-server 10.75.1.247:9092

来自 MachineB (10.75.1.2)

这样做会导致错误一遍又一遍:

[2019-09-16 23:57:07,864] WARN [AdminClient clientId=adminclient-1] Error connecting to node ubuntukafka:9092 (id: 0 rack: null) (org.apache.kafka.clients.NetworkClient)
java.net.UnknownHostException: ubuntukafka
    at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:797)
    at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505)
    at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1364)
    at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1298)
    at org.apache.kafka.clients.ClientUtils.resolve(ClientUtils.java:104)
    at org.apache.kafka.clients.ClusterConnectionStates$NodeConnectionState.currentAddress(ClusterConnectionStates.java:403)
    at org.apache.kafka.clients.ClusterConnectionStates$NodeConnectionState.access$200(ClusterConnectionStates.java:363)
    at org.apache.kafka.clients.ClusterConnectionStates.currentAddress(ClusterConnectionStates.java:151)
    at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:943)
    at org.apache.kafka.clients.NetworkClient.ready(NetworkClient.java:288)
    at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.sendEligibleCalls(KafkaAdminClient.java:925)
    at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1140)
    at java.base/java.lang.Thread.run(Thread.java:834)

它确实解析了名称 (说 ubuntukafka 而不是 ubuntukafkanode)但失败了。

我错过了什么?我使用kafka错了吗?我想我可以有一个很好的 kafka 服务器,我所有其他有数据的服务器也可以产生信息。那么有多少其他消费者可以从中读取信息呢?

最终我想测试的是我是否可以向我的 kafka 服务器发送消息:

bin/kafka-console-producer.sh --broker-list 10.75.1.247:9092 --topic test

甚至稍后使用 python 向服务器生成消息。

from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers='10.75.1.247:9092')
for _ in range(100):
    try:
        producer.send('test', b'some_message_bytes')
    except:
        print('doh')

最佳答案

一般来说,您的主机名似乎无法解析。 ping ubuntukafka 有效吗?如果不是,那么您需要将通过 advertised.listeners 使 Kafka 返回的内容调整为外部 IP 而不是主机名

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://10.75.1.247:9092

其中,10.75.1.247 是要由外部机器解析的网络地址(例如,确保您也可以 ping 通该地址)

关于java - Kafka 错误连接到节点 ubuntukafka :9092 (id: 0 rack: null) (org. apache.kafka.clients.NetworkClient) java.net.UnknownHostException:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57965731/

相关文章:

python-3.x - python-vlc无法播放并通过youtube视频链接做出响应吗?

python-3.x - 绘制英国地区、邮政编码区域和地区

python - 根据列名替换值

javascript - 为什么我的 kafkajs 客户端 (Node.js/express.js) 在获取主题元数据时抛出 'TypeError: topics.forEach is not a function'?

apache-spark - 每个直接流创建了多少消费者来读取记录?

java - 错误 : Element q not found. ..Eclipse 中的 SeleniumRC...提供了堆栈跟踪和代码..请解决?

java - Unicode 数据不保存到 MySQL 数据库中

java - 无法在 VisualVM 中打开某些应用程序

java - 如何将 xml 文件添加到 eclipse 中的 java 应用程序的类路径?

java - 在 AWS 上部署 Kafka