在使用Java创建之前检查kafka中是否存在主题

我试图通过使用以下方法在kafka 0.8.2中创建一个主题:

AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties); 

如果我在本地多次运行代码进行测试,则会因为主题已经创建而失败。 有没有办法在创建主题之前检查主题是否存在? TopicCommand api似乎没有为listTopicsdescribeTopic返回任何内容。

为此,您可以使用方法AdminUtils.topicExists(ZkUtils zkClient, String topic) ,如果主题已存在则返回true ,否则返回false

您的代码将是这样的:

 if (!AdminUtils.topicExists(zkClient, myTopic)){ AdminUtils.createTopic(zkClient, myTopic, 2, 1, properties); }