我有一个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 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配置文件。我不知道是否是导致此错误的原因,或者是否是配置中的其他内容。我已尝试将hostname
更改为server.properties
中的公开IP地址,并将broker.list
中的producer.properties
更改为{{1}}。
我使用的是kafka 0.7.2版本。
答案 0 :(得分:0)
它已经解决了。我的代码中有一行试图连接到localhost而不是实例公共IP。