如何使用C#从Kafka获取主题列表

时间:2015-06-13 13:24:35

标签: c# .net apache-kafka

我想从Kafka获取主题列表。我正在使用kafka-net客户端,但无法在有关获取主题列表的文档中找到。

2 个答案:

答案 0 :(得分:2)

根据文档,您应该可以使用

producer.GetMetadata(true, null)
  

public Metadata GetMetadata(bool allTopics, string topic)

     

在集群中查询元数据(阻止)。

     

allTopics = true-从集群请求所有主题

https://docs.confluent.io/4.0.1/clients/confluent-kafka-dotnet/api/Confluent.Kafka.Producer.html#Confluent_Kafka_Producer_GetMetadata_System_Boolean_System_String_

答案 1 :(得分:0)

您可以使用 Confluent.Kafka 包中提供的 AdminClient 列出所有主题:

using Confluent.Kafka;
using Confluent.Kafka.Admin;

var adminConfig = new AdminClientConfig()
{
   BootstrapServers = "SERVER_URL"
};

using (var adminClient = new AdminClientBuilder(adminConfig).Build())
{
   var metadata = adminClient.GetMetadata(TimeSpan.FromSeconds(10));
   var topicsMetadata = metadata.Topics;
   var topicNames = metadata.Topics.Select(a => a.Topic).ToList();
}