У меня есть экземпляр AW2 EC2 ubuntu, где он работает с зоопарком и кафкой. Я хочу подключиться к kafka с моего компьютера, поэтому у меня есть приложение Java, где я делаю соединение с помощью kafka api. При запуске приложения (из Eclipse) я получаю следующее сообщение об ошибке:Связь отказалась при попытке подключения к Kafka в AWS EC2
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
на мой публичный IP-адрес в server.properties
и тот же с broker.list
в producer.properties
.
Я использую версию kafka 0.7.2.
Что заставляет вас заключить, что соединение не работает? Каков порт сервера службы? Вы пытались установить telnet в порт, чтобы убедиться, что он открыт? Вы настроили группу безопасности EC2, чтобы разрешить соединение с этим конкретным портом. – mootmoot
Я получаю эту ошибку, когда он говорит, что соединение отказано. Порт kafka по умолчанию (9092) открыт (используется '' netstat -tlnp''), и я вижу, что прослушивание порта и в группе безопасности я открыл этот порт. – Cayetano
java.net.ConnectException: соединение отклонено, означает несколько вещей: службы не запущены; secgrp не настроен; службы отклоняют соединение и т. д. Важно использовать netcat для получения точного сообщения, исправить связь перед API. – mootmoot