2016-04-22 2 views
-1

У меня есть экземпляр 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.

+0

Что заставляет вас заключить, что соединение не работает? Каков порт сервера службы? Вы пытались установить telnet в порт, чтобы убедиться, что он открыт? Вы настроили группу безопасности EC2, чтобы разрешить соединение с этим конкретным портом. – mootmoot

+0

Я получаю эту ошибку, когда он говорит, что соединение отказано. Порт kafka по умолчанию (9092) открыт (используется '' netstat -tlnp''), и я вижу, что прослушивание порта и в группе безопасности я открыл этот порт. – Cayetano

+0

java.net.ConnectException: соединение отклонено, означает несколько вещей: службы не запущены; secgrp не настроен; службы отклоняют соединение и т. д. Важно использовать netcat для получения точного сообщения, исправить связь перед API. – mootmoot

ответ

0

Решено. В моем коде была строка, пытающаяся подключиться к localhost вместо обычного IP-адреса экземпляра.

+0

У меня есть аналогичная проблема, связанная с kafka в ec2. как вы проходите в сертификате для подключения? Я не уверен, где у меня возникают проблемы, поскольку клиент просто сидит, пытаясь установить соединение, но просто повторяет до истечения таймаута без какого-либо feedbacj – nbpeth

Смежные вопросы