简体   繁体   English

使用 C# 以编程方式清除 kafka 主题

[英]Clear kafka topic programmatically using C#

I need to clear or delete Kafka topics programmatically using C# language.我需要使用 C# 语言以编程方式清除或删除 Kafka 主题。 Currently, I have used Confluent.Kafka library for publishing and consuming Kafka topics.目前,我使用Confluent.Kafka库来发布和消费 Kafka 主题。

I can delete Kafka topics using the command line like this我可以像这样使用命令行删除 Kafka 主题

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

Is any library or way available for clearing Kafka topic programmatically using C# language?是否有任何库或方法可用于使用 C# 语言以编程方式清除 Kafka 主题?

In version 1.3.0 of confluent.kafka AdminClient class is internal, so you have to use AdminClientBuilder在 1.3.0 版本的confluent.kafka AdminClient 类是内部的,所以你必须使用AdminClientBuilder

Example:例子:

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

builder.Build();

We can quickly delete the Kafka topics using Confluent.Kafka library version 1.0.0.我们可以使用Confluent.Kafka库版本 1.0.0 快速删除 Kafka 主题。 But currently, it's in beta release.但目前,它处于测试版。 This library support Kafka admin utilities.该库支持 Kafka 管理实用程序。 Following code helps to clear/delete Kafka topics.以下代码有助于清除/删除 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);
            }
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM