一尘不染

Kafka-无法使用Java将消息发送到远程服务器

linux

我正在尝试创建一个Kafka群集以将消息发送到远程控制。我已经按照此处所述配置了所有内容。我正在Linux red hat机器上运行它,并且使用shell可以正常工作。在quick startWindows计算机上按照教程中的说明编写Java代码后,我收到以下错误:

...
DEBUG kafka.client.ClientUtils$ - Successfully fetched metadata for 1 topic(s)     Set(example)
...
ERROR kafka.producer.SyncProducer - Producer connection to cldExampleKafka.domain:80 unsuccessful 
java.nio.channels.UnresolvedAddressException
    ...
    at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44)
...
WARN kafka.producer.async.DefaultEventHandler - Failed to send producer request with correlation id 2 to broker 0 with data for patitions [ati,0]
java.nio.channels.UnresolvedAddressException
...
kafka.common.FailedToSendMessageException: Failed to send message after 3 tries.

我也尝试在其他Linux机器上运行jar,但仍然收到相同的错误。

可以localhost在安装kafka的计算机中将地址更改为jar并在其中运行Java代码。

我相信它与配置有关,但是找不到。


阅读 824

收藏
2020-06-03

共1个答案

一尘不染

在您的kafka中,server.properties有注释的配置

#advertised.host.name=<Some IP>

取消注释,并添加运行kafka的Linux机器的IP。

advertised.host.name=<Kafka Running Machine IP>

并从客户端连接到。<Kafka Running Machine IP>这应该可以解决您的问题。

编辑

(可选)您可以取消注释

#advertised.port=9092

另外,如果您正在侦听的端口与默认端口不同。

2020-06-03