我正在使用kafka-python访问Kafka。我尝试创建一个Kafka Producer:
kafka_producer = KafkaProducer(bootstrap_servers=['kafka:9092'])
但这会失败,但出现异常 kafka.errors.NoBrokersAvailable:NoBrokersAvailable 。
我发现我需要向KafkaProducer中添加api_version
参数:
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)
之类的随机值,它也起作用。
答案 0 :(得分:0)
这已经在评论中的讨论中解决了:
<块引用>理想情况下,它是您安装的 Kafka 版本,或者最低的 您的目标版本。 0.10.2 是一个安全的默认值
这就是任何版本的新客户端都应该可以工作的点 - cwiki.apache.org/confluence/display/KAFKA/Compatibility+Matrix