apache-kafka - 如何确定 Kafka 的 API 版本?
问题描述
我正在使用kafka-python访问 Kafka。我尝试创建一个 Kafka Producer:
kafka_producer = KafkaProducer(bootstrap_servers=['kafka:9092'])
但这失败了异常kafka.errors.NoBrokersAvailable: NoBrokersAvailable。
我发现我需要向api_version
KafkaProducer 添加参数:
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)
,它也有效。
解决方案
这已经在评论中的讨论中解决了:
理想情况下,它是您安装的 Kafka 版本,或者您的目标最低版本。0.10.2 是安全的默认值
这就是任何版本的新客户端都应该工作的点 - cwiki.apache.org/confluence/display/KAFKA/Compatibility+Matrix
推荐阅读
- vb.net - TextRenderer.MeasureText 为不同的宽度返回相同的高度
- linux - Ausearch不会转换文件
- angular-material - 从 Angular Material Tab 内容中获取滚动位置
- webpack-dev-server - webpack 开发服务器 ReferenceError 要求未定义
- serilog - Serilog UWP 后台任务
- javascript - 护照-facebook ProfilePic node.js
- reactjs - 检查标签内部输入时如何设置标签样式?
- azure - 如何以零停机时间将 Azure Pay as you go 迁移到 Azure 计划?
- shopify - Shopify 创建可重用的动态部分以在模板中使用
- c - 递归函数导致堆栈溢出