首页 > 解决方案 > 如何确定 Kafka 的 API 版本?

问题描述

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

kafka_producer = KafkaProducer(bootstrap_servers=['kafka:9092'])

但这失败了异常kafka.errors.NoBrokersAvailable: NoBrokersAvailable

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

kafka_producer = KafkaProducer(bootstrap_servers=['kafka:9092'],
                               api_version=(0, 10, 1))

该命令有效。

问题是:如何确定 的值api_version

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

标签: apache-kafkakafka-producer-apikafka-python

解决方案


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

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

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


推荐阅读