O que está causando os Hubs de Eventos do Azure ReceiverDisconnectedException / LeaseLostException?
Estou recebendo eventos de um EventHub usando EventProcessorHost e uma classe IEventProcessor (chame: MyEventProcessor). Eu dimensiono isso para dois servidores executando meu EPH nos dois servidores e fazendo com que eles se conectem ao Hub usando o mesmo ConsumerGroup, mas hostName exclusivo (usando o nome da máquina).
O problema é: em horários aleatórios do dia / noite, o aplicativo registra isso:
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)
Essa exceção ocorre ao mesmo tempo que uma LeaseLostException, lançada do método CloseAsync do MyEventProcessor ao tentar verificar o ponto. (Presumivelmente, Close está sendo chamado devido à ReceiverDisconnectedException?)
Acho que isso está ocorrendo devido ao gerenciamento automático de concessão dos Event Hubs ao expandir para várias máquinas. Mas estou me perguntando se preciso fazer algo diferente para torná-lo mais limpo e evitar essas exceções. Por exemplo: algo com época?