使用java创建主题-卡夫卡版本>;0.10.0.0
我正在尝试编写JavaAPI来创建卡夫卡主题。我有卡夫卡版本0.11.0.0。我在stack overflow中搜索,并以同样的方式尝试。但无论主题是否存在,它总是给我一个例外使用java创建主题-卡夫卡版本>;0.10.0.0,java,apache-kafka,Java,Apache Kafka,我正在尝试编写JavaAPI来创建卡夫卡主题。我有卡夫卡版本0.11.0.0。我在stack overflow中搜索,并以同样的方式尝试。但无论主题是否存在,它总是给我一个例外 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/kafka/common/errors/TopicExistsException at kafka.admin.AdminUtils.createTopic(AdminUti
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/kafka/common/errors/TopicExistsException
at kafka.admin.AdminUtils.createTopic(AdminUtils.scala)
at kafkaStream.Processor.CreateTopic.main(CreateTopic.java:65)
Caused by: java.lang.ClassNotFoundException:
org.apache.kafka.common.errors.TopicExistsException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我尝试了以下代码:
String topicName = "t5";
String zookeeperHosts = "XXXX:2181,XXXX:2181";
int sessionTimeOutInMs = 15 * 1000;
int connectionTimeOutInMs = 50 * 1000;
Properties topicConfig = new Properties();
zkClient = new ZkClient("XXXX:2181,XXXX:2181",
sessionTimeOutInMs,
connectionTimeOutInMs,
ZKStringSerializer$.MODULE$);
zkUtils = new ZkUtils(zkClient, new
ZkConnection(zookeeperHosts), false);
ZkUtils.apply(
"XXXX:2181,XXXX:2181",
sessionTimeOutInMs,
connectionTimeOutInMs,
false);
// AdminUtils.createTopic(zkUtils, topicName, numPartitions, 1,
topicConfig, RackAwareMode.Enforced$.MODULE$);
AdminUtils.createTopic(zkUtils, topicName, 2, 1, new
Properties(), RackAwareMode.Enforced$.MODULE$);
maven依赖项->
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.11.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.11.0.0</version>
</dependency>
org.apache.kafka
卡夫卡2.11
0.11.0.0
org.apache.kafka
卡夫卡客户
0.11.0.0
因为您使用的是新的0.11.0版本,我建议您使用新的管理客户端API(以下链接提供一些文档:)
使用Zookeeper执行此类操作将在将来被弃用,因为它会推动新的管理客户端API的使用。您是否已将依赖API(特定版本的kafka客户端)JAR添加到类路径?是的,我已添加感谢您的建议,我已尝试使用AdminClient。我做不到。你可以分享一些例子吗?你可以在这里找到一个非常简单的例子(你只需要kafka客户端依赖项,请参阅相关的pom.xml):非常感谢@ppatierno,我面临的问题是导入了错误的包。非常感谢调用createTopics方法没有错误,但是在调用之后,它给了我错误java.util.concurrent.ExecutionException:org.apache.kafka.common.errors.TimeoutException:等待节点分配超时。由于它,主题没有被创建