尝试使用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 或其他已弃用的广告选项有助于解决问题。因此,唯一正在工作的配置状态是没有监听器的状态。这当然是不可接受的,因为我们需要以某种方式设置本地集群。
对于这个愚蠢的问题,解决方案似乎很简单并且在想,但我们自己无法想象。
答案 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
一切都像以前一样!
很抱歉,如果这对你不起作用,但我认为值得一提。