Compartir a través de


Implementar reintentos con retroceso exponencial

Sugerencia

Este contenido es un extracto del libro electrónico, ".NET Microservices Architecture for Containerized .NET Applications" (Arquitectura de microservicios de .NET para aplicaciones de .NET contenedorizadas), disponible en Documentación de .NET o como un PDF descargable y gratuito que se puede leer sin conexión.

Miniatura de la portada del libro electrónico 'Arquitectura de microservicios de .NET para aplicaciones .NET contenedorizadas'.

Los reintentos con retroceso exponencial es una técnica que vuelve a intentar una operación, con un tiempo de espera exponencialmente creciente, hasta un número máximo de reintentos se ha alcanzado (el retroceso exponencial). Esta técnica adopta el hecho de que los recursos en la nube podrían no estar disponibles intermitentemente durante más de unos segundos por cualquier motivo. Por ejemplo, un orquestador podría mover un contenedor a otro nodo de un clúster para el equilibrio de carga. Durante ese tiempo, es posible que se produzca un error en algunas solicitudes. Otro ejemplo podría ser una base de datos como SQL Azure, donde una base de datos se puede mover a otro servidor para el equilibrio de carga, lo que hace que la base de datos no esté disponible durante unos segundos.

Existen muchos enfoques para implementar la lógica de reintentos con retroceso exponencial.