0

我正在尝试根据分区键将流拆分为多个分区,但显然它不起作用。实现是这样的,我有一个类可以说Metrices

public class Metrice {
    public string MetriceType { get; set; }
    public double MetriceValue { get; set; }
}

度量标准将一次异步使用一个,并且可能具有不同的MetriceType. 我想要实现的是在MetriceType. 到目前为止我所尝试的。

  1. 将消息键(partitionKey)设置为MetricesType
 public Message<string, string> FormatMessage(string partitionKey, string message)
 {           
   return  new Message<string, string> { Key = partitionKey, Value = message };           
 }

消息总是在Partition.Value= 0发布

  1. Confluent.Kafka 库中的 Partitoner 类,希望有类似于 Custom Partitoner的东西,这个链接但找不到任何 .net 实现。

所以我的问题是,在这种情况下,有没有办法根据属性拆分我的收入消息,MetriceType并将它们发布在他们的专用分区上(排序是必不可少的),或者我唯一的选择是使用和AdminClient编码创建一个主题分区计数,或者我可以研究另一种方法。提前致谢。

4

1 回答 1

0

与 Java SDK 相比,您需要外部化您自己的返回 int 的分区器方法。

例如,生产者的 ProduceAsync 方法接受您要将消息发送到的分区的整数参数

否则,如果主题只有一个分区,那么,是的,键将始终被散列到该分区中

于 2021-09-28T14:27:34.873 回答