连接到节点ub时发生kafka错误untukafka:9092 (id:0机架:空)(org.apache.kafka.clients.networkclient)java.net.unknownhostexception:

ijnw1ujt  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(956)

我在virtualbox上有两台服务器,每台都是ubuntu。我可以从我的主机ssh到两者,以及两者之间,这样它们都有nat网络。
我在一台服务器上运行kafka,如下所述:
https://kafka.apache.org/quickstart
所以我提出了单节点缩放Kafka然后开始。我添加了测试主题(全在机器上。10.75.1.247)
我正在尝试从另一台计算机列出该节点上的主题:

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

来自机器B(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')
mlmc2os5

mlmc2os51#

一般来说,你的主机名是无法解析的。做 ping ubuntukafka 工作?如果没有,那么你需要调整你的Kafka返回通过什么 advertised.listeners 作为外部ip而不是主机名

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

m3eecexj2#

只改变听众=plaintext://localhost:9092适用于我无需更改服务器配置中的Adverted.listeners属性

相关问题