我想用语法重新创建一个Kafka主题。
我正在使用kafka.admin.AdminUtils
。
这是我的代码:
AdminUtils.deleteTopic(zkUtils, topicName);
AdminUtils.createTopic(zkUtils, topicName, partitions, replicationFactor, new Properties());
以上代码大部分时间都在工作,但有几次失败并出现以下异常:
Exception in thread "main" kafka.common.TopicExistsException: Topic "new_topic" already exists.
at kafka.admin.AdminUtils$.createOrUpdateTopicPartitionAssignmentPathInZK(AdminUtils.scala:253)
at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:237)
at kafka.admin.AdminUtils.createTopic(AdminUtils.scala)
据我所知,该主题未被正确删除。我在这里做错了什么。
答案 0 :(得分:2)
在调用deletionTopic后,您无法立即调用createTopic。必须注意两件事:
将'delete.topic.enable'设为true
由于删除主题是异步操作,因此在创建新主题之前,最好确保从Zookeeper中成功删除所有元数据