Služba A → B → C. C spadne. B čeká na timeout, vyčerpá thread pool. A čeká na B. Kaskádové selhání. Circuit Breaker tento řetězec přeruší.
Netflix Hystrix¶
public class GetUserCommand extends HystrixCommand<User> {
@Override
protected User run() {
return client.getUser(userId);
}
@Override
protected User getFallback() {
return User.anonymous();
}
}
Tři stavy: Closed (normální), Open (blokováno, fallback), Half-Open (testovací volání). Thread pool isolation — bulkhead pattern. Hystrix Dashboard pro vizualizaci v reálném čase.
Fallback strategie¶
- Statická/cached hodnota
- Degradovaná odpověď
- Alternativní služba
- Fail fast (lepší než timeout)
Circuit Breaker je povinná výbava¶
V distribuovaném systému věci selhávají. CB brání kaskádovému kolapsu.
circuit breakerhystrixmicroservicesresilience