Neden gerekli?
Akıllı Yönlendirme her isteği gerçek zamanlı değerlendirir. Ama bir banka sürekli hata veriyorsa her seferinde yeniden denemek:- Müşteri için gecikme yaratır (5 sn timeout sonrası fallback)
- Toplam başarı oranını düşürür
- Hatalı bankayı meşgul eder
Üç hal
Konfigürasyon
Circuit Breaker, konnektör HTTP istemcisi üzerinde Polly kütüphanesi ile uygulanmıştır (Infrastructure/Http/PollyPolicies.cs). Mevcut varsayılanlar:
Implementasyon Polly’nin basit
CircuitBreakerAsync policy’sidir — exception count tabanlı (oran tabanlı değil). “Rolling pencere içinde %50 hata” gibi gelişmiş ölçümler AdvancedCircuitBreakerAsync’a geçişle yol haritasında.PUT /api/v1/connector-configurations/{id} endpoint’i.
Açılma kriteri
Bir konnektör HTTP istemcisi 3 ardışık geçici hata (5xx, timeout, network) verdiğinde Open’a geçer. 30 saniye boyunca o konnektöre çağrı yapılmaz; süre sonunda HalfOpen’a geçilir ve tek bir test isteği denenir.Yarı-açık hal (HalfOpen)
Bekleme süresi dolunca breaker “HalfOpen” haline geçer. Sonraki birkaç istek test trafiği olarak banka ile yeniden denenir:- Test başarılı → Closed haline döner, normal çalışmaya devam eder.
- Test başarısız → tekrar Open haline döner.
İstek üzerindeki etkisi
Banka Open haldeyken o bankaya yönlendirilecek istekler:- Routing kuralında
fallback_connector_config_idtanımlanmışsa → doğrudan fallback konnektöre gider, birinci konnektör hiç denenmez (timeout süresi kaybedilmez) - Fallback yoksa → işlem
connector_unavailablekoduyla reddedilir - Karşılayan başka kural varsa engine onu değerlendirmeye devam eder
Sağlık endpoint’i
Konnektörün anlık sağlık durumunu API üzerinden kontrol edebilirsiniz:closed/open/half_open), son rolling penceredeki başarı/hata oranını, ortalama yanıt süresini ve son durum değişiklik zamanını döner.
İzleme
Breaker durumunu konsoldaki Konnektör Sağlık Paneli ekranından takip edebilirsiniz:- Mevcut hali (Closed / Open / HalfOpen)
- Son rolling window’daki başarı/hata oranı
- Ortalama yanıt süresi
- Hangi tarihte Open’a düştüğü
- Spark-line trend grafikleri
Yol haritası
- Connector health webhook event’leri (
connector.circuit.opened/closed) — şu an public webhook event listesinde yok, planlamada - Konnektör başına özel circuit breaker konfig UI’ı (varsayılan ayarlar yerine merchant-spesifik)
- Manuel devreden çıkarma — bakım pencereleri için konnektörü manuel Open’a alma
- Bağlantı testleri — konfigürasyon sırasında Test Et ile sağlık doğrulama