【发布时间】:2020-04-28 05:06:58
【问题描述】:
虽然您可以通过 Java 或基于 Java 的语言创建主题(请参阅 here),但如果不使用 Java,似乎没有一种干净的方法可以做到这一点。因此,纯语言客户端 API(如 kafka-node,纯 JavaScript 客户端)无法直接创建主题。相反,我们有两个选择:
1) 使用像向主题发送元数据请求这样的技巧——如果auto.create.topics.enable 设置为true,那么你可以创建一个主题——但只能使用默认配置,不能控制分区等.
2) 围绕基于 Java 的客户端编写包装器,仅用于主题创建。最简单的方法是使用命令行参数exec 脚本bin/kafka-topics.sh,这至少可以说是丑陋的。
有没有更好的方法来做到这一点? Zookeeper 有一个纯 JavaScript 客户端,node-zookeeper-client,如果我直接在 Zookeeper 中操作代理/分区信息会怎样?
还有其他想法吗?
【问题讨论】:
-
还有另一个客户端,但现在有同样的限制docs.confluent.io/2.0.1/kafka-rest/docs/index.html
-
KIP-4: Command line and centralized administrative operations 上的 Apache Kafka 项目正在进行工作,这将公开某些管理功能,例如创建主题。一旦 KIP-4 完成,您应该很快就会看到非 Java 语言的更好选择。正如 nautilus 所说,Confluent 的 Kafka REST 代理(非 Java 语言与 Kafka 交互的流行工具)尚不支持创建 Kafka 主题; KIP-4 在这里也可能有所帮助。
标签: apache-kafka