以图形方式重新创建Kafka主题

时间:2016-11-18 11:38:00

标签: java apache-kafka

我想用语法重新创建一个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)

据我所知,该主题未被正确删除。我在这里做错了什么。

1 个答案:

答案 0 :(得分:2)

在调用deletionTopic后,您无法立即调用createTopic。必须注意两件事:

  1. 将'delete.topic.enable'设为true

  2. 由于删除主题是异步操作,因此在创建新主题之前,最好确保从Zookeeper中成功删除所有元数据