Брокер Kafka на AWS - настройка IP

Я установил программное обеспечение Kafka на EC2. Моя проблема связана с подключением к брокеру извне AWS. У меня все работает изнутри.

Итак, я могу запустить брокера, и как производитель, так и потребитель будут работать (с одного сервера). У меня есть порты 2181 и 9092, открытые для удаленного местоположения, от того места, где я хотел бы использовать производителя. Итак, с моей (локальной) машины разработки .. Если я делаю telnet 9092 - он меня подключает. Если я попытаюсь использовать kafka-console-продюсер, я получаю эту ошибку.

[2017-03-09 15:04:44,971] ERROR Error when sending message to topic topic2 with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic2-0: 1521 ms has passed since batch creation plus linger time

Я пробовал всевозможные комбинации с файлом server.properties и на нем - с ключами listeners и advertised.listeners.

Я был бы очень признателен за помощь ...


person preator    schedule 09.03.2017    source источник


Ответы (1)


Это может быть вызвано тем, что публичное имя хоста / IP-адрес машин AWS не может использоваться внутри AWS. В таком случае вам нужно немного поиграть. Нужны 2 вещи:

  • убедитесь, что вы установили advertised.listeners на свой частный адрес
  • в вашем локальном / etc / hosts привяжите локальное имя хоста aws (например, ip-10-0-0-1.eu-west-1.compute.internal) к общедоступному IP

Затем убедитесь, что вы всегда используете только частное имя хоста. Это было для меня основной причиной многих странных проблем, из-за которых не ведутся журналы.

person Guillaume    schedule 09.03.2017