40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
---
|
|
title: Circuit Breaker
|
|
created: 2026-06-06
|
|
updated: 2026-06-06
|
|
type: concept
|
|
tags: [architecture, tech, devops]
|
|
confidence: medium
|
|
contested: false
|
|
sources: []
|
|
---
|
|
# ⚡ Circuit Breaker
|
|
|
|
## Définition Courte
|
|
Pattern de **résilience** qui interrompt les appels vers un service en panne pour éviter la cascade d'échecs, en ouvrant un "circuit" (court-circuit) pendant un délai, puis en testant la récupération.
|
|
|
|
## Explication Détaillée
|
|
**3 états** :
|
|
- **Closed** (fermé) : appels normaux, monitoring des échecs.
|
|
- **Open** (ouvert) : tous les appels échouent immédiatement, on laisse le service récupérer.
|
|
- **Half-Open** (semi-ouvert) : on laisse passer quelques requêtes tests pour voir si le service est rétabli.
|
|
|
|
**Pourquoi ?** Sans circuit breaker, un service en panne fait s'empiler des requêtes, épuiser les threads, et crasher le service appelant (effet domino).
|
|
|
|
## Cas d'Usage
|
|
- Appels à des API externes peu fiables.
|
|
- Communication entre microservices.
|
|
- Protection des appels coûteux (LLM, base de données).
|
|
|
|
## Outils Liés
|
|
- **Hystrix** (Netflix, historique, plus maintenu).
|
|
- **Resilience4j** (Java moderne).
|
|
- **Polly** (.NET).
|
|
- **Istio** (service mesh avec circuit breaker intégré).
|
|
|
|
## Pages Liées
|
|
- [[load-shedding]]
|
|
- [[haute-disponibilite]]
|
|
- [[message-queue]]
|
|
- [[architecture-microservices]]
|