我试着用卡夫卡。 所有配置都正确完成,但当我试图从控制台产生消息时,我一直得到以下错误

WARN Error while fetching metadata with correlation id 39 : 
     {4-3-16-topic1=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

Kafka版本:2.11-0.9.0.0


当前回答

这是我在config/server中添加的。属性,这解决了我的问题类似上述问题。希望这有助于,它在服务器中有很好的文档。属性文件,在修改此文件之前,请尝试阅读和理解。 advertised.listeners =明文:/ / < your_kafka_server_ip >: 9092

其他回答

这可能与server.properties中的advertised.host.name设置有关。

可能发生的情况是,您的生产者试图找出谁是给定分区的领导者,找出它的advertised.host.name和advertised。端口并尝试连接。 如果这些设置没有正确配置,那么可能会认为领导者不可用。

因为我想让我的kafka代理连接到远程生产者和消费者,所以我不想做广告。要注释掉的侦听器。在我的情况下,(在kubernetes上运行kafka),我发现我的kafka pod没有分配任何集群IP。通过从服务中删除行clusterIP: None。呵呵,kubernetes给kafka pod分配了一个内部ip。这解决了我的LEADER_NOT_AVAILABLE问题,也解决了kafka生产者/消费者的远程连接问题。

以我为例,它在家里工作得很好,但在办公室里,当我连接到办公室网络时,它就不行了。

所以修改了config/server.properties 监听器=明文://:9092 to监听器=明文://localhost:9092

在我的例子中,我是在描述消费者群体时得到的

当LEADER_NOT_AVAILABLE错误抛出时,只需重新启动kafka代理:

/bin/kafka-server-stop.sh

紧随其后的是

/bin/kafka-server-start.sh config/server.properties

(注意:Zookeeper必须在这个时候运行,否则它不会工作)

我尝试了这里列出的所有建议。对我有用的是去服务器。属性和添加:

port = 9092
advertised.host.name = localhost 

将监听器和advertised_listeners注释掉。