在搜索如何通过 API 创建 Kafka 主题时,我在 Scala 中找到了这个示例:
import kafka.admin.AdminUtils
import kafka.utils.ZKStringSerializer
import org.I0Itec.zkclient.ZkClient
// Create a ZooKeeper client
val sessionTimeoutMs = 10000
val connectionTimeoutMs = 10000
val zkClient = new ZkClient("zookeeper1:2181", sessionTimeoutMs,
connectionTimeoutMs, ZKStringSerializer)
// Create a topic with 8 partitions and a replication factor of 3
val topicName = "myTopic"
val numPartitions = 8
val replicationFactor = 3
val topicConfig = new Properties
AdminUtils.createTopic(zkClient, topicName,
numPartitions, replicationFactor, topicConfig)
Source: https://stackoverflow.com/a/23360100/871012
最后一个参数ZKStringSerializer
显然是一个 Scala 对象。我不清楚如何使这个示例在 Java 中运行。
这个帖子如何在 clojure 中创建 scala 对象在 Clojure 中问了同样的问题,答案是:
ZKStringSerializer$/MODULE$
在 Java 中(我认为)可以翻译为:
ZKStringSerializer$.MODULE$
但是当我尝试(或任何其他变体)时,它们都没有编译。
编译错误是:
KafkaTopicCreator.java:[16,18] cannot find symbol
symbol: variable ZKStringSerializer$
location: class org.sample.KafkaTopicCreator
我正在使用 kafka_2.9.2-0.8.1.1 和 Java 8。