Sobes.tech
Senior
45

Циклдік ажыратқыш: алгоритмнің жүзеге асырылуы мен жағдайлары.

Сұралған компаниялар
СБЕРСБЕР

AI-дан жауап

sobes.tech AI

Circuit Breaker — тарату жүйелерінің тұрақтылығын арттыру үшін қолданылатын үлгі, жұмыс істемейтін қызметке қайта шақыруларды болдырмайды.

Негізгі күйі:

  1. Жабық (Closed) — барлық сұраулар әдеттегідей өтеді.
  2. Ашық (Open) — сұраулар дереу блокталады, жұмыс істемейтін қызметке жүктемені азайту үшін.
  3. Жартылай ашық (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 -> "Ауыстыру жауапы");

Мұндай тәсіл жүйенің тұрақтылығын арттыруға және каскадтық сәтсіздіктерді болдырмауға көмектеседі.