【问题标题】:Clear kafka topic programmatically using C#使用 C# 以编程方式清除 kafka 主题
【发布时间】:2020-04-21 22:46:41
【问题描述】:

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

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

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

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

【问题讨论】:

  • 被删除功能点根据this添加到库中

标签: c# apache-kafka confluent-platform kafka-topic


【解决方案1】:

confluent.kafka 1.3.0 版本中,AdminClient 类是内部的, 所以你必须使用AdminClientBuilder

例子:

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

builder.Build();

【讨论】:

    【解决方案2】:

    我们可以使用 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);
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-10
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 2016-10-30
      • 1970-01-01
      • 2014-11-19
      相关资源
      最近更新 更多