在搜索如何通过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)
资料来源: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和java8。
1条答案
按热度按时间4urapxun1#
对于java,请尝试以下操作:,
下面的第一个导入语句
按以下方式为zkclient创建对象,
上面的代码不适用于kafka>0.9,因为api已经更改,请使用下面的kafka>0.9代码