Я получаю события от EventHub, используя EventProcessorHost и класс IEventProcessor (называйте это: MyEventProcessor). Я масштабирую это на двух серверах, запустив свой EPH на обоих серверах и связав их с концентратором, используя одну и ту же потребительскую группу, но уникальное имя узла (с использованием имени машины).
Проблема: в случайные часы дня и ночи приложение регистрирует это:
Exception information:
Exception type: ReceiverDisconnectedException
Exception message: New receiver with higher epoch of '186' is created hence current receiver with epoch '186' is getting disconnected. If you are recreating the receiver, make sure a higher epoch is used.
at Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(Exception exception)
at Microsoft.ServiceBus.Common.Parallel.TaskHelpers.EndAsyncResult(IAsyncResult asyncResult)
at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
Это исключение происходит одновременно с LeaseLostException, выведенным из метода MyEventProcessor CloseAsync при попытке контрольной точки. (Предположительно Close вызывается из-за исключения ReceiverDisconnectedException?)
Я думаю, что это происходит из-за автоматического управления арендой Event Hubs при масштабировании на несколько компьютеров. Но мне интересно, нужно ли мне делать что-то другое, чтобы заставить его работать более чисто и избегать этих Исключений? Например: что-то с эпохами?