无法从java客户端连接到我vm上的kafka

egmofgnx  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(435)

目标:我正试图用java语言向Kafka发送消息。
这是一种痛苦。。
让我简单描述一下。
我已经在centos虚拟机上安装了kafka。
我用它附带的zookeeper、服务器、生产者和客户机运行了所有默认属性文件。
我成功地发送和接收消息。
我有一个telnet连接,从我的电脑到zookeeper(2181)端口和kafka服务器(9092)端口的虚拟机。
现在,我想编写java代码来向主题发送消息。我使用网站上的“快速入门”中的示例:

Properties props = new Properties();
props.put("zk.connect", "http://XX.XX.XX.XX:2181"); //  where X is the ip
props.put("serializer.class", "kafka.serializer.StringEncoder");
producer = new Producer<String, String>(new ProducerConfig(props));

它在第四行失败,但有以下例外:

kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries

以及

rg.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 400

问题。
例外。
错误参数:
在kafka快速入门示例中,我看到它只需要zk.connect、serializer.class。当我运行它时,它会在producer的构造函数中大叫它需要metadata.broker.list。
是吗?所以我感觉Kafka服务器的ip和端口。
顺便说一句-是zk.connect还是zookeeper connect?zktimeoutexception:无法在超时时间内连接到zookeeper服务器:400
maven坏版本
我去了网站,我看到最新的版本是Kafka2.8.0-0.8.0。
问题1-我使用intelij下载它(我认为它是maven central)-
我得到了所有相关的jar——只是kafka jar是空的(只包含清单)。
问题2-有比网站上的版本更高的版本。他们是官方的吗。
无论如何,我下载了org.apache。kafka:kafka_2.10:0.8.0
使用wireshark,我看到三个syn&ack(三重握手),然后是fyn&ack
刚好在…之后。在zookeeper的日志中,我看到以下[2014-02-27 01:43:42127]warn endofstreamexception:无法从客户端sessionid 0x0读取其他数据,可能客户端已关闭套接字
(org.apache.zookeeper.server.nioservercnxn)
这意味着我关闭了连接。为什么?

vcirk6k6

vcirk6k61#

在我的情况下,我试图连接到托管在hdp2.2沙盒vm和云服务中的azurecentos6.6vm上的代理,但无法连接。
我在mac上运行了一个简单的java示例(类似于问题中发布的代码片段)。
最后对我起作用的是将以下参数添加到./kafka/config/server.properties:
播发的.host.name播发的.port
对于azure,我必须指定云服务名称,例如:
advised.host.name=my-cloud-service.cloudapp.net advised.port=6667
另外,对于azure,我必须确保端口6667作为和端点打开。
一旦我配置了这些,我就能够从我的工作站上运行java代码,并看到在vm上运行的消费者进程的输出。
让我得出这个结论的是以下网址:
https://cwiki.apache.org/confluence/display/kafka/faq
看看:为什么我的消费者/生产者不能与经纪人建立联系?

3htmauhk

3htmauhk2#

Kafka0.8不需要 zk.connect 参数。
您可能已经遵循了0.7快速入门dodumentation。检查您使用的版本,即使您使用的是旧的0.7发行版 DONT 需要“http”在你的 zk.connect 属性。将其作为 "xx..xx.xx:9092" ...
应该是公正的

props.put(“zk.connect”, “127.0.0.1:2181”);

对于0.8,请遵循此链接,在这两个不同版本中,producer的工作方式几乎没有变化。如果你是新的Kafka,那么你应该使用最新的版本,因为有很多修复在这方面

相关问题