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

And*_*nov 5 apache-kafka kafka-python

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

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

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

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

listeners=PLAINTEXT://localhost:9092
Run Code Online (Sandbox Code Playgroud)

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

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

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

Max*_*rra 4

这可能听起来很愚蠢,但由于这个原因,完全相同的问题也发生在我身上:

我通过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
Run Code Online (Sandbox Code Playgroud)

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

$ zkServer start
$ kafka-server-start /usr/local/etc/kafka/server.properties
Run Code Online (Sandbox Code Playgroud)

建议的方法不断地在客户端中抛出“没有可用的经纪人”错误。然后我将命令分成两行:

$ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
$ kafka-server-start /usr/local/etc/kafka/server.properties
Run Code Online (Sandbox Code Playgroud)

一切都像以前一样!

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