如何获得confluent.kafka中某个主题的所有“partitiontopic”的列表?

hkmswyz6  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(326)

我正在使用confluent kafka dotnet(confluent.kafka)为kafka生成消息。
我想手动管理哪些分区的消息去,以保持秩序,为某些组的消息。
怎么可能得到一份 PartitionTopic Kafka的主题?
我已经用java研究了这个解决方案。但我不明白如何实现相同的功能 Confluent.Kafka .
或者,可以使用密钥发送消息,因为相同的密钥保证在相同的分区上。但是,我还是找不到一个方法来创建一个 new Message 使用除 Null . 因此,一个使用非空密钥发送消息的示例会很有帮助。

iyr7buue

iyr7buue1#

我发现我不能用非null键创建消息的原因是因为我用 <Null, ...> .
感谢mjwills要求我提供最小可复制的示例,这促使我解决了这个问题。

o0lyfsai

o0lyfsai2#

要获取单个主题的主题分区列表,可以使用adminclient类:

using (var adminClient = new AdminClientBuilder(new AdminClientConfig { BootstrapServers = "bootstrap-servers" }).Build())
{
    var meta = adminClient.GetMetadata(TimeSpan.FromSeconds(20));

    var topic = meta.Topics.SingleOrDefault(t => t.Topic == "topic-name");

    var topicPartitions = topic.Partitions;
}

您可以在这里找到更多的adminclient示例。但是请注意警告,警告说:“此功能的api可能会更改。”

相关问题