![](/img/trans.png)
[英]How to create a Kafka Topic using Confluent.Kafka .Net Client
[英]How can I get a list of all `PartitionTopic`s for a topic in Confluent.Kafka?
我正在使用confluent-kafka-dotnet (Confluent.Kafka) 为 Kafka 生成消息。
我想手动管理哪些分区消息 go 以保留某些消息组的顺序。
如何获取 Kafka 主题的PartitionTopic
列表?
我在 Java 中查看了这个解决方案。 但我不明白如何使用Confluent.Kafka
实现相同的功能。
或者,使用密钥发送消息是可以接受的,因为可以保证相同的密钥位于相同的分区上。 但同样,我找不到使用new Message
以外的任何密钥类型创建Null
的方法。 因此,使用非空键发送消息的示例会有所帮助。
要获取单个主题的 TopicPartitions 列表,您可以使用 AdminClient class:
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 可能会发生变化。”
我已经弄清楚我无法使用非空键创建消息的原因是因为我使用<Null, ...>
指定了我的 Producer。
感谢mjwills要求我提供最小的可重现示例,这促使我解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.