Circuit breaker
Un circuit breaker interrompt les appels à un service défaillant, puis autorise des appels de contrôle limités.
Un circuit breaker protège une application contre des appels continuels à un service dépendant défaillant. Il évalue certains échecs et décide si de nouveaux appels peuvent passer. Après un délai défini, des appels de contrôle limités peuvent vérifier le rétablissement du service.
Trois états, des autorisations différentes
Dans l’état closed, les appels passent normalement. Dans l’état open, ils sont rejetés sans être transmis au service concerné. half-open n’autorise que des appels de contrôle limités ; leurs résultats déterminent si les appels sont de nouveau bloqués ou si le fonctionnement normal reprend.
Dans un portail client fictif, le service de rapports PDF tombe en panne. Le circuit breaker ouvert empêche de nouveaux appels à ce service, et le portail indique son indisponibilité temporaire. Le mécanisme n’enregistre pas pour autant une demande de rapport dans une file et ne répare pas le service.
L’équipe définit les types d’échecs, la fenêtre d’évaluation, le seuil, le délai et le comportement de repli. Un timeout limite la durée d’un appel ; un réessai lance une nouvelle tentative. Le circuit breaker décide de la transmission de l’appel. Ces mécanismes peuvent coopérer, avec des règles coordonnées.
Sources
Termes associés
- Stratégie de nouvelle tentativeUne stratégie de nouvelle tentative précise quels échecs relancer, avec quels délais et jusqu’à quelle limite.
- Backoff exponentielLe backoff exponentiel multiplie le délai entre les nouvelles tentatives, jusqu’à un plafond défini.
- Server-Sent EventsLes Server-Sent Events transmettent du texte du serveur au client par HTTP, par exemple sur l’avancement d’une tâche en arrière-plan.
- ETagUn ETag identifie une version de représentation d’une ressource HTTP et permet des lectures ou modifications conditionnelles.
- Cross-Origin Resource SharingCORS contrôle l’accès du navigateur aux réponses d’une autre origine. Il ne remplace ni la connexion ni la vérification des droits de l’API.
- Échange de données informatiséL’EDI transmet des documents métier structurés entre systèmes. Format, profil du partenaire, correspondance des données et réponses doivent être cohérents.
Votre projet avec ASES
Décrivez-nous votre projet. Nous revenons vers vous avec une première évaluation.