Circuit Breaker هنگام اختلال سرویس خارجی، ارسال مداوم درخواست به آن را متوقف میکند. وضعیتهای رایج آن Closed، Open و Half-Open هستند.
Retry دوباره تلاش میکند، اما Circuit Breaker در زمان خرابی از فشار بیشتر جلوگیری میکند.
مثالی از مسیر اجرای برنامه
وقتی سرویس پرداخت برای چند ثانیه از دسترس خارج میشود، Circuit Breaker میتواند درخواست جدید را موقتاً رد کند تا فشار بیشتر نشود.
این راهکار را بهصورت پیشفرض به تمام پروژهها تحمیل نکنید. هزینه پیادهسازی، خطاهای محتمل و سازگاری با زیرساخت فعلی را بسنجید.
سه حالت Circuit Breaker
CLOSED: requests pass; failure rate is monitored
OPEN: downstream calls are rejected or use fallback
HALF_OPEN: limited trial calls decide recovery
قطعکننده مدار وقتی سرویس بیرونی بهطور مداوم خطا میدهد از موج Timeoutهای همزمان جلوگیری میکند. Threshold و مدت بازماندن باید براساس داده سرویس واقعی تنظیم شوند.