Nella ricerca di come creare un argomento Kafka tramite l'API, ho trovato questo esempio a Scala:Come creare Kafka ZKStringSerializer in Java?
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)
Fonte: https://stackoverflow.com/a/23360100/871012
L'ultimo arg ZKStringSerializer
è apparentemente un oggetto Scala. Non mi è chiaro come far funzionare questo esempio in Java.
Questo post How to create a scala object in clojure chiede la stessa domanda in Clojure e la risposta è stata:
ZKStringSerializer$/MODULE$
che in Java sarebbe (credo) si traducono in:
ZKStringSerializer$.MODULE$
Ma quando provo che (o qualsiasi numero di altre variazioni) nessuno di loro viene compilato.
L'errore di compilazione è:
KafkaTopicCreator.java:[16,18] cannot find symbol
symbol: variable ZKStringSerializer$
location: class org.sample.KafkaTopicCreator
Sto usando kafka_2.9.2-0.8.1.1 e Java 8.