相关疑难解决方法(0)

Azure的EventData.PartitionKey如何决定写入哪个分区?

我正在尝试在Azure中实现事件中心.我已经设法创建了一个生产者,它将消息发布到事件中心,以及消费者将其读取.我的事件中心分为16个分区.在消费者方面,我循环遍历以下各项:

var eventHub = NamespaceManager.CreateFromConnectionString(builder.ToString()).GetEventHub("de-analytics-events");

foreach (var partitionId in eventHub.PartitionIds)
{
     subscriberGroup.RegisterProcessor<EventProcessor>(new Lease
     {
         PartitionId = partitionId
     }, new EventProcessorCheckpointManager());

     Console.WriteLine("Processing: " + partitionId);
}
Run Code Online (Sandbox Code Playgroud)

在调试器中查看这些值表示eventHub.PartitionIds在16个分区的情况下,范围从"0"到"15".

然而,在生产者方面,我被允许指定的是我的EventData.PartitionKey,这是一个字符串,但它不直接对应于消费者方面的字符串.例如,如果我指定了PartitionKey ="7",则它不一定写入分区"7".

阅读显示涉及某种哈希,但我并不特别想随机猜测16个字符串,这些字符串哈希到数字0-15.所以我想知道如何定义发布到哪个分区?

为了补充参考,是我遵循的教程,以使我最简单的案例工作.

c# azure

4
推荐指数
2
解决办法
4582
查看次数

标签 统计

azure ×1

c# ×1