Очистить тему кафки программно с помощью С#

Мне нужно программно очистить или удалить темы Kafka с помощью языка С#. В настоящее время я использую библиотеку Confluent.Kafka для публикации и использования тем Kafka.

Я могу удалить темы Kafka, используя командную строку, как это

kafka-topics.bat --zookeeper 192.108.94.79:2181 --delete --topic test-topic3

Доступна ли какая-либо библиотека или способ для очистки темы Kafka программно с использованием языка С#?


person Abdul Manaf    schedule 27.12.2018    source источник
comment
В библиотеку была добавлена ​​точка функциональности удаления в соответствии с этим.   -  person Scrobi    schedule 27.12.2018


Ответы (2)


В версии 1.3.0 класс confluent.kafka AdminClient является внутренним, поэтому вы должны использовать AdminClientBuilder

Пример:

AdminClientBuilder builder = new AdminClientBuilder(new AdminClientConfig() { BootstrapServers =""})

builder.Build();
person Ygalbel    schedule 21.04.2020

Мы можем быстро удалить темы Kafka, используя библиотеку Confluent.Kafka версии 1.0.0. Но в настоящее время он находится в бета-версии. Эта библиотека поддерживает утилиты администрирования Kafka. Следующий код помогает очистить/удалить темы Kafka.

using Confluent.Kafka;
using System;
using System.Collections.Generic;

namespace deleteKafkaTopic
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine($"librdkafka Version: {Library.VersionString} ({Library.Version:X})");
            Console.WriteLine($"Debug Contexts: {string.Join(", ", Library.DebugContexts)}");

            IEnumerable<string> topicList = new List<string>() { "test-topic4" };
            deleteTopics("192.168.64.49:9092", topicList);
        }
        static void deleteTopics(string brokerList, IEnumerable<string> topicNameList)
        {
            using (var adminClient = new AdminClient(new AdminClientConfig { BootstrapServers = brokerList }))
            {
                adminClient.DeleteTopicsAsync(topicNameList, null);
            }
        }
    }
}
person Abdul Manaf    schedule 02.01.2019