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