Uber lavina benzeri tekrar eden isteklere karşı koruma sistemi geliştirdi

Uber mühendisleri, dağıtık sistemlerde yaşanan arızalar sırasında ortaya çıkan “yeniden deneme fırtınalarını” önlemeye yönelik bir mimari çözüm sundu. Mekanizma, mikro hizmetlerin başarısız çağrıları topluca yeniden denemeye başlayarak altyapıya aşırı yük bindirdiği durumlarda yükün zincirleme biçimde artmasını önlüyor.
Sistem iki temel bileşene dayanıyor: bağlama duyarlı hata yönetimi ve dinamik yeniden deneme bütçeleri. retry budgets uygulaması, sistemin mevcut durumuna bağlı olarak her hizmet için izin verilen yeniden deneme sayısını sınırlıyor. Hata oranı belirlenen eşiği aşarsa mekanizma, ağın tamamında performans düşüşünü önlemek için ek istekleri otomatik olarak engelliyor.
Geliştiriciler, farklı hata türlerini ayırt eden bağlama duyarlı mantığı devreye aldı. Örneğin 4xx hataları (istemci kaynaklı) otomatik yeniden denemeleri tetiklemezken, 5xx hataları (sunucu kaynaklı) mevcut işlem kapasitesi dikkate alınarak ele alınıyor. Böylece sistem, bazı düğümlerin veya veri tabanlarının kısmen devre dışı kalması durumunda bile kararlılığını koruyabiliyor.
Bu yaklaşım, sistemi kurtarma girişimlerinin trafiği daha da artırdığı ve hizmetlerin “kendi kendini çökerttiği” durumların riskini en aza indiriyor. Çözüm, şirketin temel arka uç süreçlerine hâlihazırda entegre edilmiş durumda. Yüksek trafikli platformların erişilebilirliğini korumak açısından kritik önem taşıyan bu çözüm, API’lerde yoğun yük ve kesinti durumlarında öngörülebilir bir çalışma sağlıyor.



