0

我需要使用 C# 语言以编程方式清除或删除 Kafka 主题。目前,我使用Confluent.Kafka库来发布和使用 Kafka 主题。

我可以像这样使用命令行删除 Kafka 主题

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

是否有任何库或方法可用于使用 C# 语言以编程方式清除 Kafka 主题?

4

2 回答 2

2

在 1.3.0 版的confluent.kafkaAdminClient 类是内部的,所以你必须使用AdminClientBuilder

例子:

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

builder.Build();
于 2020-04-21T14:46:41.433 回答
1

我们可以使用Confluent.Kafka库版本 1.0.0快速删除 Kafka 主题。但目前,它处于测试版。该库支持 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);
            }
        }
    }
}
于 2019-01-02T12:08:02.063 回答