如何确定Kafka的API版本?

Mic*_*ndr 7 apache-kafka kafka-python kafka-producer-api

我正在使用kafka-python访问 Kafka。我尝试创建一个 Kafka Producer:

kafka_producer = KafkaProducer(bootstrap_servers=['kafka:9092'])
Run Code Online (Sandbox Code Playgroud)

但这会因kafka.errors.NoBrokersAvailable: NoBrokersAvailable异常而失败。

我发现我需要向api_versionKafkaProducer添加参数:

kafka_producer = KafkaProducer(bootstrap_servers=['kafka:9092'],
                               api_version=(0, 10, 1))
Run Code Online (Sandbox Code Playgroud)

此命令有效。

问题是:如何确定 的值api_version

kafka-broker-api-versions.sh --bootstrap-server localhost:9092给了我一些东西,但我不确定是否有我可以使用的号码。我尝试了随机值api_version=(20, 2, 1),它也有效。

Den*_*din 4

这个问题已经在评论的讨论中解决了:

理想情况下,它是您安装的 Kafka 版本,或者您目标的最低版本。0.10.2 是安全的默认值

这就是任何版本的新客户端都应该工作的点 - cwiki.apache.org/confluence/display/KAFKA/Compatibility+Matrix