Partilhar via


Implementar novas tentativas com backoff exponencial

Sugestão

Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no do .NET Docs ou como um PDF para download gratuito que pode ser lido offline.

Miniatura da capa do eBook Arquitetura de Microsserviços .NET para Aplicações .NET Contentorizadas.

Repetições com backoff exponencial é uma técnica que repete uma operação, com um tempo de espera exponencialmente crescente, até que uma contagem máxima de tentativas tenha sido atingida (o backoff exponencial). Essa técnica abraça o fato de que os recursos de nuvem podem estar intermitentemente indisponíveis por mais do que alguns segundos por qualquer motivo. Por exemplo, um orquestrador pode estar movendo um contêiner para outro nó em um cluster para equilibrar a carga. Durante esse período, algumas solicitações podem falhar. Outro exemplo pode ser um banco de dados como o SQL Azure, onde um banco de dados pode ser movido para outro servidor para balanceamento de carga, fazendo com que o banco de dados fique indisponível por alguns segundos.

Existem várias abordagens para implementar a lógica de tentativas com atraso exponencial.