Ajouter des replis aux disjoncteurs
Découvrez comment associer un disjoncteur à une logique de repli afin que, lorsque le disjoncteur est ouvert, votre service se dégrade progressivement au lieu de faire échouer la requête de l’utilisateur.
Ajouter des replis aux disjoncteurs est une leçon Microservices Communication Patterns (Saga, Circuit Breaker) gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Microservices Communication Patterns (Saga, Circuit Breaker), et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Microservices Communication Patterns (Saga, Circuit Breaker) comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why Fallbacks Matter
A circuit breaker protects your service by failing fast when a dependency is down. But failing fast still means the user gets an error unless you provide a fallback.
A fallback is the plan B that runs when the breaker is open.
The Fallback Contract
A fallback should return a sensible default quickly and never call the same failing dependency. It is invoked when:
- The breaker is open, or
- The protected call throws or times out.
A Simple Fallback
Here is the core idea: try the real call, and if it fails, return the fallback value.
def get_price(call_remote):
try:
return call_remote()
except Exception:
return 'fallback: last-known price'
print(get_price(lambda: (_ for _ in ()).throw(Exception('down'))))Fallback: Cached Value
A common strategy is to serve the last successful response from a cache. The user sees slightly stale data instead of an error.
cache = {'price': 42}
def get_with_cache(breaker_open):
if breaker_open:
return cache.get('price', 'unavailable')
return 'fresh value'
print(get_with_cache(True))Fallback: Default Value
When no cache exists, return a safe default: an empty list, a neutral recommendation, or a generic message. The key is that the user experience degrades, not breaks.
def recommendations(breaker_open):
if breaker_open:
return ['Popular item A', 'Popular item B']
return ['Personalized 1', 'Personalized 2']
print(recommendations(True))Fallback: Alternate Service
Sometimes plan B is another provider. If the primary payment gateway's breaker is open, route to a secondary gateway. Each provider has its own breaker.
Wiring Fallbacks in Resilience4j
Most libraries let you attach a fallback declaratively. With Resilience4j you decorate the call with a circuit breaker and supply a recover function that runs on failure or open state.
Keep Fallbacks Fast and Safe
A fallback must not introduce new failure modes:
- No call to the broken dependency.
- No blocking I/O that could also hang.
- Bounded, predictable execution time.
Communicating Degradation
Tell the user (and your dashboards) when degraded data is served. A subtle UI note like 'showing cached results' sets expectations, and a metric on fallback rate reveals dependency health.
fallback_count = 0
def record_fallback():
global fallback_count
fallback_count += 1
return fallback_count
print('Fallbacks served:', record_fallback())When NOT to Fall Back
Some operations have no safe default. You cannot 'fall back' on confirming a payment. In those cases, fail clearly and let the caller retry later rather than fabricate a result.
Testing Fallbacks
Write tests that force the breaker open and assert the fallback runs and returns the expected safe value. Fallbacks that are never tested tend to break silently.
Quick Check
Which of these is a valid requirement for a circuit breaker fallback?
Recap
You learned to add fallbacks to circuit breakers:
- Fallbacks run when the breaker is open or the call fails.
- Common strategies: cached value, safe default, alternate service.
- Keep fallbacks fast, safe, and free of the broken dependency.
- Communicate degradation and test fallbacks explicitly.
Fallbacks turn fast failures into graceful degradation.
Apprends Microservices Communication Patterns (Saga, Circuit Breaker) avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 12
- Leçons
- 48
Questions Fréquemment Posées
La leçon « Ajouter des replis aux disjoncteurs » est-elle gratuite ?
Oui — le texte complet de « Ajouter des replis aux disjoncteurs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Microservices Communication Patterns (Saga, Circuit Breaker), passe à CoddyKit PRO. Le cours Microservices Communication Patterns (Saga, Circuit Breaker) comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Ajouter des replis aux disjoncteurs » ?
Découvrez comment associer un disjoncteur à une logique de repli afin que, lorsque le disjoncteur est ouvert, votre service se dégrade progressivement au lieu de faire échouer la requête de l’utilisa… Tu pratiques Microservices Communication Patterns (Saga, Circuit Breaker) avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Microservices Communication Patterns (Saga, Circuit Breaker) ?
Aucune expérience préalable n'est requise. Microservices Communication Patterns (Saga, Circuit Breaker) sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Ajouter des replis aux disjoncteurs » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Microservices Communication Patterns (Saga, Circuit Breaker) ?
Oui. Chaque leçon Microservices Communication Patterns (Saga, Circuit Breaker) inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Choix d’une bibliothèque de coupe-circuit
- Configuration des instances de coupe-circuit
- Intégration aux appels de services
- Ajouter des replis aux disjoncteurs