Java 尝试连接AWS EC2中的卡夫卡时连接被拒绝
我有一个AWS EC2 ubuntu实例,它运行zookeeper和kafka。我想从我的计算机连接到kafka,所以我有一个Java应用程序,在那里我使用kafka api进行连接。在运行应用程序(从Eclipse)时,出现以下错误:Java 尝试连接AWS EC2中的卡夫卡时连接被拒绝,java,eclipse,amazon-web-services,amazon-ec2,apache-kafka,Java,Eclipse,Amazon Web Services,Amazon Ec2,Apache Kafka,我有一个AWS EC2 ubuntu实例,它运行zookeeper和kafka。我想从我的计算机连接到kafka,所以我有一个Java应用程序,在那里我使用kafka api进行连接。在运行应用程序(从Eclipse)时,出现以下错误: log4j:WARN No appenders could be found for logger (kafka.consumer.SimpleConsumer). log4j:WARN Please initialize the log4j system pr
log4j:WARN No appenders could be found for logger (kafka.consumer.SimpleConsumer).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "Timer-0" java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:484)
at sun.nio.ch.Net.connect(Net.java:476)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:675)
at kafka.consumer.SimpleConsumer.connect(SimpleConsumer.scala:49)
at kafka.consumer.SimpleConsumer.getOrMakeConnection(SimpleConsumer.scala:186)
at kafka.consumer.SimpleConsumer.fetch(SimpleConsumer.scala:79)
at kafka.javaapi.consumer.SimpleConsumer.fetch(SimpleConsumer.scala:43)
这行代码似乎抛出了错误:
FetchRequest req = new FetchRequest("test", 0, offset, 1000);
ByteBufferMessageSet messageSet = simpleConsumer.fetch(req);
在控制台中还显示了一些关于log4j的信息。我在实例中有log4j.properties
文件以及其他kafka配置文件。我不知道是什么原因导致了这个错误,还是配置中的其他原因。我已尝试在server.properties
中将hostname
更改为我的公共IP地址,并在producer.properties
中将broker.list
更改为公共IP地址
我使用的是卡夫卡0.7.2版本。问题解决了。我的代码中有一行代码试图连接到localhost而不是实例公共IP。是什么让您得出连接不起作用的结论?什么是服务服务器端口?您是否尝试将telnet连接到该端口以确保它已打开?您是否将EC2安全组设置为允许从该特定端口进行连接。我收到一个错误,其中显示连接被拒绝。默认的kafka端口(9092)是打开的(使用了
netstat-tlnp
),我可以看到该端口正在侦听,并且在安全组中我打开了该端口。java.net.ConnectException:Connection拒绝,表示几件事:服务未启动;未配置secgrp;服务拒绝连接等。重要的是使用netcat获取确切的消息,在API之前修复连接。我遇到了类似的问题,连接到ec2中的kafka。您是如何通过证书进行连接的?我不确定哪里出了问题,因为客户端只是坐在那里试图建立连接,只是在没有任何feedbacj的情况下重试直到超时