[英]Kafka and C# - Send Message To Specific Partition
我用 Docker 运行 Kafka,
首先我创建了一个这样的主题,
docker exec -t kafka kafka-topics --bootstrap-server :9092 --create --topic kafka-test --partitions 5 --replication-factor 1
如您所见,有5个分区,我使用了下面的代码
我认为这段代码可能会产生消息,但仅适用于分区 3,
它可以工作,但会为所有分区划分数据,因此不仅适用于分区 3 ......其中一些在下面,如 P2 和 P0 (Partition2 - Partition0)
但我只想为特定分区生成消息......
我错过了什么吗? 或者我有什么问题吗?
下面的消费者代码
这是消费者的照片..
KafkaNet
似乎是一个废弃的项目。
切换到confluent-kafka-dotnet
,你有一个Produce
方法,它接受一个TopicPartition
作为参数,你可以使用它来代替 Message 本身的Meta
属性(它应该只是一个键+值+标题)。
ProducerConfig config = new ProducerConfig { BootstrapServers = bootstrapServers, ClientId = Dns.GetHostName() };
using (var producer = new ProducerBuilder<Null, string>(config).Build()) {
var topicPart = new TopicPartition("topic", new Partition(3));
var result = await producer.ProduceAsync(topicPart, new Message<Null, string> { Value = message });
}
另外 - Kafka 不是 HTTP 服务; 从您的 Uri 变量中删除协议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.