从Azure Event Hub收听时出现错误
提供的偏移XXXXX无效。系统中的最后一个偏移量为XXXXX
分区1出错:AMQP对象会话中止。 分区0出错:提供的偏移无效。
答案 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。由于此对象包含偏移量值,因此导致将相同的偏移量传递给不同的分区-显然,如果分区之间的偏移量不同,则会导致问题。