Kafka-无法使用Java向远程服务器发送消息
我正在尝试创建一个Kafka-无法使用Java向远程服务器发送消息,java,linux,apache-kafka,Java,Linux,Apache Kafka,我正在尝试创建一个Kafka集群来向遥控器发送消息。我已经按照描述配置了所有内容。 我在Linux-red-hat机器上运行这个程序,使用shell可以很好地工作。在我的windows机器上编写了快速入门教程中所述的java代码后,我收到了以下错误: ... DEBUG kafka.client.ClientUtils$ - Successfully fetched metadata for 1 topic(s) Set(example) ... ERROR kafka.producer
Kafka
集群来向遥控器发送消息。我已经按照描述配置了所有内容。
我在Linux-red-hat
机器上运行这个程序,使用shell可以很好地工作。在我的windows机器上编写了快速入门
教程中所述的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代码
我相信它与配置有关,但我找不到它。在您的kafka
服务器中。属性中有一个已注释的配置
#advertised.host.name=<Some IP>
另外,如果您正在侦听的端口与默认端口不同。已使用
从server.properties
取消注释
listeners=PLAINTEXT://:9092
及
advised.listeners=纯文本://:9092
用实际IP替换
。尝试从本地计算机连接到kafka远程群集
虚拟机有一个内部IP(9.0.0.1)和一个外部IP(192.1.1.1)。我只能ssh到内部,而不能ssh到外部。我对conifg/server.properties进行了以下更改:
//设置为机器的IP(使用ifconfig
或hostname-I
查找)
//设置为消费者和生产者将连接的IP
advertised.listeners=PLAINTEXT://9.0.0.1:9092
在
config/server.properties
我把这个
listeners=PLAINTEXT://[server\u ip]:9092
而且效果很好
为了快速测试,不要忘记在kafka consumer的命令行中使用[server_ip]。
例如:
我希望这能对你有所帮助。
当做
Ali它是否也需要更改zookeeper配置?因为我仍然有问题,我必须同时提到host.name和advised.host.name才能使它工作。更详细地解释了这一点。我在server.properties中没有找到这个条目,但Dhananjay的答案对我有用。你能分享你从VM连接到kafka远程集群的实际配置吗。虚拟机有1个内部ip(9.0.0.1)和外部ip(192.1.1.1)我只能ssh到内部,而不是外部,当你执行ifconfig或hostname-i“code”时,我的conifg/server.properties//在机器中提供iplisteners=PLAINTEXT://192.1.1.1:9092//提供ip消费者和生产者将连接广告中的“代码”。listeners=PLAINTEXT://9.0.0.1:9092
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<HOST IP>:9092
listeners=PLAINTEXT://192.1.1.1:9092
advertised.listeners=PLAINTEXT://9.0.0.1:9092
/usr/local/kafka_2.11-2.0.0/kafka-console-consumer.sh --property print.timestamp=true --bootstrap-server [server_ip]:9092 --topic [you_topic]