Ing sistem terdistribusi, panggilan gagal. Retry kanthi backoff mulih saka kesalahan sementara; circuit breaker ngelingake sampeyan ora manyun-manyun dependensi sing mudhun. Padha komplementer: coba maneh nangis, mateni ing outage.
Ing sistem terdistribusi, panggilan gagal. Retry kanthi backoff mulih saka kesalahan sementara; circuit breaker ngelingake sampeyan ora manyun-manyun dependensi sing mudhun. Padha komplementer: coba maneh nangis, mateni ing outage.
Kanggoan sementara (timeout, keparekan jaringan singkat, 503), coba maneh — nanging backoff eksponensial lan tambahin jitter supaya retry nyebar tinimbang nyinkronisasi menyang bala tentara gundhul.
attempt 1 → wait ~1s (+ random jitter)
attempt 2 → wait ~2s (+ random jitter)
attempt 3 → wait ~4s (+ random jitter)
→ cap at maxRetries (e.g. 3) and a max delay → don't retry forever
Peringatan utama:
Circuit breaker nglacak kegagalan kanggo dependensi lan, sawisé threshold, mateni — gagal cepet (utawa mulih fallback) tinimbang nelpon layanan mati. Sawisé cooldown iku setengah-open kanggo raket pemulihan.
CLOSED → calls pass through; count failures
too many failures → trip → OPEN
OPEN → fail fast immediately (no call); start cooldown timer
cooldown elapsed → HALF-OPEN
HALF-OPEN → allow a few probe calls
success → CLOSED (recovered) ; failure → back to OPEN
Retry → transient, likely-to-succeed-soon errors (1 slow call)
Circuit breaker → repeated/sustained failures (the dependency is down)
→ use together: breaker prevents retries from piling onto a dead service
Tanpa iku, dependensi sing gagal setya nyuwun pangilane mudhun: panjaluk numpuk ing timeout, retry nambah beban, lan kegagalan nyebar ing layanan. Exponential backoff kanthi jitter mulih saka keparekan tanpa retry storm; capping lan idempotency njaga retry aman; lan circuit breaker mateni boros sumber daya ing dependensi mati lan menehi papan kanggo mulih. Bebarengan, maka kegagalan dependensi dadi acara sing dikungkung lan self-healing.