Senior
45
Циклдік ажыратқыш: алгоритмнің жүзеге асырылуы мен жағдайлары.
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
Circuit Breaker — тарату жүйелерінің тұрақтылығын арттыру үшін қолданылатын үлгі, жұмыс істемейтін қызметке қайта шақыруларды болдырмайды.
Негізгі күйі:
- Жабық (Closed) — барлық сұраулар әдеттегідей өтеді.
- Ашық (Open) — сұраулар дереу блокталады, жұмыс істемейтін қызметке жүктемені азайту үшін.
- Жартылай ашық (Half-Open) — тайм-ауттан кейін шектеулі санды сұрауларды жіберіп, қызметтің қалпына келуін тексереді.
Жұмыс принципі:
- Қателердің шегі (мысалы, 5 сәтсіз шақыру қатарынан) асып кеткенде, Open күйіне ауысады.
- Белгілі бір тайм-ауттан кейін Half-Open күйіне өтеді және сұрауларды сынайды.
- Егер сұраулар сәтті өтсе — жабық күйіне қайта оралады, әйтпесе қайтадан Open болады.
Java-да жүзеге асырулар:
- Resilience4j кітапханасы — заманауи, жеңіл, Circuit Breaker, Rate Limiter және басқа да мүмкіндіктерді қолдайды.
- Netflix Hystrix — танымал, бірақ ескірген.
Resilience4j CircuitBreaker қолдану мысалы:
CircuitBreaker circuitBreaker = CircuitBreaker.ofDefaults("myCircuitBreaker");
Supplier<String> decoratedSupplier = CircuitBreaker
.decorateSupplier(circuitBreaker, () -> remoteService.call());
Try<String> result = Try.ofSupplier(decoratedSupplier)
.recover(throwable -> "Ауыстыру жауапы");
Мұндай тәсіл жүйенің тұрақтылығын арттыруға және каскадтық сәтсіздіктерді болдырмауға көмектеседі.