从Azure Event Hub收听时出现错误

时间:2018-03-06 14:13:02

标签: azure-eventhub

从Azure Event Hub收听时出现错误

  

提供的偏移XXXXX无效。系统中的最后一个偏移量为XXXXX

     

分区1出错:AMQP对象会话中止。   分区0出错:提供的偏移无效。

1 个答案:

答案 0 :(得分:0)

我有同样的问题。这是因为共享了EventPosition类的实例。

var position = EventPosition.FromStart();

var eventProcessorHost = new EventProcessorHost(
    eventHubName,
    consumerGroupName,
    eventHubConnectionString,
    storageConnectionString,
    LeaseContainerName);

host.RegisterEventProcessorFactoryAsync(
    processorFactory,
    new EventProcessorOptions
    {
        // Problem is the following line.
        // In order to fix it replace 'position' with 'EventPosition.FromStart()'
        InitialOffsetProvider = partitionId => position  
    }).Wait();

显然,如果您共享位置类的一个实例,那么ProcessorHost会将同一对象用于不同的IEventProcessor。由于此对象包含偏移量值,因此导致将相同的偏移量传递给不同的分区-显然,如果分区之间的偏移量不同,则会导致问题。