Apache Kafka: не удалось обновить метаданные / java.НИО.каналы.Исключение ClosedChannelException

Я только начинаю работу с Apache Kafka / Zookeeper и сталкиваюсь с проблемами, пытаясь настроить кластер на AWS. В настоящее время у меня три сервера:

один работает Zookeeper и два работает Кафка.

Я могу запускать серверы Kafka без проблем и создавать темы на обоих из них. Однако проблема возникает, когда я пытаюсь запустить производителя на одной машине и потребителя на другой:

о продюсере Кафки:

kafka-console-producer.sh --broker-list <kafka server 1 aws public dns>:9092,<kafka server 2 aws public dns>:9092 --topic samsa

о потребителе Кафки:

kafka-console-consumer.sh --zookeeper <zookeeper server ip>:2181 --topic samsa

Я набираю сообщение о производителе ("привет"), и некоторое время ничего не происходит. Затем я получаю следующее сообщение:

ERROR Error when sending message to topic samsa with key: null, value: 2 bytes
with error: Failed to update metadata after 60000 ms.
(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)

на стороне потребителя я получаю это сообщение, которое периодически повторяется:

WARN Fetching topic metadata with correlation id # for topics [Set(samsa)] from broker [BrokerEndPoint(<broker.id>,<producer's advertised.host.name>,9092)] failed (kafka.client.ClientUtils$)
java.nio.channels.ClosedChannelException
    at kafka.network.BlockingChannel.send(BlockingChannel.scala:110)
    at kafka.producer.SyncProducer.liftedTree1(SyncProducer.scala:75)
    at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:74)
    at kafka.producer.SyncProducer.send(SyncProducer.scala:119)
    at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:59)
    at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:94)
    at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:66)
    at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63)

через некоторое время производитель начнет быстро выбрасывать это сообщение об ошибке с постепенным увеличением#:

WARN Error while fetching metadata with correlation id # : {samsa=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

не уверен, куда идти отсюда. Дайте мне знать, если больше подробности о моих файлах конфигурации необходимы

1 ответов


это проблема конфигурации.

для того, чтобы запустить несколько изменений в config файлы должны были произойти:

на config/server.properties на каждом сервере Кафки:

  • host.name: <Public IP>
  • advertised.host.name: <AWS Public DNS Address>

на config/producer.properties на каждом сервере Кафки:

  • metadata.broker.list: <Producer Server advertised.host.name>:<Producer Server port>,<Consumer Server advertised.host.name>:<Consumer Server port>

в /etc/hosts на каждом сервере Кафки, изменить 127.0.0.1 localhost localhost.localdomain в:

<Public IP>  localhost localhost.localdomain