使用 C# 以编程方式清除 kafka 主题
Clear kafka topic programmatically using C#
我需要使用 C# 语言以编程方式清除或删除 Kafka 主题。目前,我使用 Confluent.Kafka 库来发布和消费 Kafka 主题。
我可以像这样使用命令行删除 Kafka 主题
kafka-topics.bat --zookeeper 192.108.94.79:2181 --delete --topic test-topic3
是否有任何库或方法可用于使用 C# 语言以编程方式清除 Kafka 主题?
我们可以使用Confluent.Kafka库版本1.0.0快速删除Kafka主题。但目前,它处于测试版。该库支持 Kafka 管理实用程序。以下代码有助于 clear/delete 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);
}
}
}
}
在 confluent.kafka
的 1.3.0 版本中,AdminClient class 是内部的,
所以你必须使用 AdminClientBuilder
示例:
AdminClientBuilder builder = new AdminClientBuilder(new AdminClientConfig() { BootstrapServers =""})
builder.Build();
我需要使用 C# 语言以编程方式清除或删除 Kafka 主题。目前,我使用 Confluent.Kafka 库来发布和消费 Kafka 主题。
我可以像这样使用命令行删除 Kafka 主题
kafka-topics.bat --zookeeper 192.108.94.79:2181 --delete --topic test-topic3
是否有任何库或方法可用于使用 C# 语言以编程方式清除 Kafka 主题?
我们可以使用Confluent.Kafka库版本1.0.0快速删除Kafka主题。但目前,它处于测试版。该库支持 Kafka 管理实用程序。以下代码有助于 clear/delete 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);
}
}
}
}
在 confluent.kafka
的 1.3.0 版本中,AdminClient class 是内部的,
所以你必须使用 AdminClientBuilder
示例:
AdminClientBuilder builder = new AdminClientBuilder(new AdminClientConfig() { BootstrapServers =""})
builder.Build();