Могу ли я удалить темы в качестве продюсера?Или я могу удалить темы, прежде чем писать их - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть производитель, который передает данные, которые мы будем использовать для тестирования нашего веб-приложения и потребителей. Для этого я спрашиваю, есть ли способ удалить темы перед отправкой их через продюсера? В настоящее время, поскольку я использую виртуальную машину на своем компьютере для тестирования системы, я могу использовать CMD. Есть ли способ сделать это по программе производителя. (Java)

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете включить некоторый код, который удаляет темы в вашей реализации Producer (возможно, в самом начале).

Вот один пример , который использует kafka.admin.AdminUtils.deleteTopic(),

/**
 * Deletes the named topics
 * @param topicNames The names of the topics to delete
 * @return A set of the names of the topics that were successfully deleted
 */
public String[] deleteTopics(final String...topicNames) {
    if(!connected.get()) throw new IllegalStateException("The KafkaTestServer is not running");
    if(topicNames==null || topicNames.length==0) return new String[0];
    final Set<String> deleted = new LinkedHashSet<String>();
    for(String topicName: topicNames) {
        if(topicName==null || topicName.trim().isEmpty()) {
            try {
                AdminUtils.deleteTopic(zkUtils, topicName.trim());
                deleted.add(topicName.trim());
            } catch (Exception ex) {
                log.warn("Failed to delete topic [" + topicName.trim() + "]", ex);
            }
        }
    }
    return deleted.toArray(new String[deleted.size()]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...