我正在尝试在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.所以我想知道如何定义发布到哪个分区?
为了补充参考,这是我遵循的教程,以使我最简单的案例工作.