【问题标题】:How to get topics list from Kafka using C#如何使用 C# 从 Kafka 获取主题列表
【发布时间】:2021-05-18 07:50:50
【问题描述】:

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

【问题讨论】:

标签: c# .net apache-kafka


【解决方案1】:

您可以使用 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();
}

【讨论】:

    【解决方案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_

    【讨论】:

    • dotnet core 中没有 Producer 类支持 nuget,现有的 Iproducer deosnt 也有这个 GetMetadata() 方法。
    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 2019-02-10
    • 2012-03-12
    相关资源
    最近更新 更多