Funções do Azure e Hubs de Eventos: Otimizando a Taxa de Transferência

… Ou o poder de consumidores paralelos e host.json

Igor Izotov Blocked Unblock Seguir Seguindo 13 de janeiro

TL; DR. Eu tomo um cenário de processamento de eventos sem servidor razoavelmente padrão – uma função do Azure disparada por mensagens em um Hub de Eventos – e discuto como otimizar esse sistema para obter throughput por meio de:
a) arquitetura geral
b) Particionamento EH e
c) aprimorando o acionador do Hub de Eventos host.json configurações: maxBatchSize , prefetchCount e batchCheckpointFrequency. Eu duvido que alguém estaria interessado em ler uma outra obra teórica, então para o benefício do meu leitor eu executei uma série de experimentos que envolviam testar múltiplas combinações de contagens de partição do Event Hub e configurações host.json e observar o impacto na latência e no throughput. Sinta-se livre para pular direto para a abordagem e resultados publicados no Power BI.

Em outras palavras, estou tentando ajudar aqueles indivíduos que estão no presente olhando fixamente à meia distância tentando entender:

Por que minha função do Azure repentinamente está lutando para recuperar o tempo perdido algumas horas atrás? Eu pensei que a nuvem estúpida iria escalar minhas coisas automaticamente …