Aller au contenu

Circuit breaker

Un circuit breaker interrompt les appels à un service défaillant, puis autorise des appels de contrôle limités.

API et contrats de données

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