尝试连接Kafka时无可用代理错误

时间:2016-08-02 15:51:29

标签: apache-kafka kafka-python

尝试使用CentOS上的Python客户端本地连接到Kafka 0.10.0.0时,我遇到了一个非常奇怪的问题。

我的连接选项非常简单且默认:

kafka_consumer = kafka.KafkaConsumer(
        bootstrap_servers=['localhost:9092'],
        client_id="python-test-consumer"
    )

当我在Kafka的server.properties文件中手动设置侦听器选项时,如:

listeners=PLAINTEXT://localhost:9092

我得到了kafka.errors.NoBrokersAvailable,尽管我仍然可以使用curl或其他linux东西轻松连接到Kafka代理服务器。

没有 advertised.listeners 或其他已弃用的广告选项有助于解决问题。因此,唯一正在工作的配置状态是没有监听器的状态。这当然是不可接受的,因为我们需要以某种方式设置本地集群。

对于这个愚蠢的问题,解决方案似乎很简单并且在想,但我们自己无法想象。

1 个答案:

答案 0 :(得分:3)

这可能听起来很愚蠢,但由于这个问题,我发生了同样的问题:

我通过brew(Mac包管理器)升级到Kafka 0.10.0.0。 Brew然后建议像这样的单线运行:

$ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties; kafka-server-start /usr/local/etc/kafka/server.properties

而不是我之前的执行方式:

$ zkServer start
$ kafka-server-start /usr/local/etc/kafka/server.properties

建议采用的方法是继续抛弃那些"没有经纪人"客户端的错误。然后我将命令分成两行:

$ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
$ kafka-server-start /usr/local/etc/kafka/server.properties

一切都像以前一样!

很抱歉,如果这对你不起作用,但我认为值得一提。