Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hız sınırlaması, bulut API'lerinin bir kullanıcının belirli bir süre içinde yapabileceği istek sayısını düzenlemek için kullandığı bir kontrol mekanizmasıdır. Bulut API'leri üreticileri, istek akışının hizmeti bunaltmamasını sağlamak için hız sınırlamayı kullanır. Hız sınırlaması, API çağrılarının hızı ve hacmi için bir sınır belirler. Hız sınırları genellikle belirli bir süre başına istek sayısı olarak tanımlanır.
Bulut API'leri hız sınırlamayı neden kullanır?
- Aşırı yüklemeyi önleyin. Hız sınırlama, tek bir kullanıcının veya hizmetin çok fazla istekle dolup taşmasını önleyerek API sunucusunun kararlı ve duyarlı kalmasını sağlar.
- Adil kullanım sağlayın. Hız sınırlaması, tek bir kullanıcının API kaynaklarını tekeline almamasını sağlayarak adil kullanım politikalarını uygular. Hız sınırlaması, tüm kullanıcılara eşit erişim sağlar.
- Güvenliği artırın. Hız sınırlaması, potansiyel olarak kötü amaçlı kaynaklardan gelen isteklerin sayısını kısıtlayarak Dağıtılmış Hizmet Reddi saldırılarının ve diğer kötüye kullanım davranışlarının azaltılmasına yardımcı olur.
- Maliyetleri yönetme. Bulut hizmeti sağlayıcıları için hız sınırlama, öngörülemeyen veya aşırı kaynak kullanımını önleyerek operasyonel maliyetleri yönetmeye yardımcı olur.
- Hizmet kalitesini koruyun. Hız sınırlaması, trafik artışlarını önleyerek tüm kullanıcılar için tutarlı bir hizmet kalitesi sağlar.
Uygulamalarınızda hız sınırlama deneyiminiz
Bulut API'lerini tümleştiren uygulamalar oluştururken, hız sınırlamayı desteklediklerini doğrulamak için belgelerine bakın. Eğer öyle yaparlarsa, hız sınırları hakkında bilgi içeren RateLimit-... veya X-RateLimit-... yanıtlardan biriyle birlikte üst bilgileri alırsınız. API'nin hız sınırlarını aşmadığınızdan emin olmak için uygulamanızda bu bilgileri kullanabilirsiniz. Örneğin, RateLimit-Remaining üst bilgi geçerli pencerede kalan isteklerin sayısını gösterir. Bu üst bilgi 0 olarak ayarlanmış bir yanıt alırsanız hız sınırına ulaştığınızı ve başka bir istek göndermeden önce sonraki pencereyi beklemeniz gerektiğini biliyorsunuzdur. Üst bilgi, RateLimit-Reset hız sınırının sıfırlanması zamanını gösterir. Bazı API'ler RateLimit-... üst bilgileri yalnızca eşiğe ulaştıktan sonra gönderir. Örneğin, isteklerden geriye 10% kaldığında.
Hız sınırını aştığınızda API, isteklerinizi kısıtlar ve bir HTTP 429 Too Many Requests durum kodu döndürür. Bazı API'ler, başka bir istek göndermeden önce ne kadar beklemeniz gerektiğini belirten bir Retry-After üst bilgi de gönderebilir. Tüm API’ler bu kalıbı izlemez. GitHub, örneğin, 403 yerine 429 ile yanıt verebilir.
Kısıtlamayı önlemek ve uygulamanızın yanıt vermeye devam etmesini sağlamak için uygulamanızda oran sınırlaması uygulayın. Teknoloji yığınınıza bağlı olarak, farklı kitaplıklar uygulamanızdaki hız sınırlamasını işlemenize yardımcı olabilir. Uygulamanızda hız sınırlamasını uyguladıktan sonra, hız sınırlamasını düzgün bir şekilde işleyip işlemediğini görmek için test edin.
Hız sınırlaması uygulamanızı nasıl etkiler?
Bir API 429 yanıtlar döndürmeye başladığında, bunları işlemeyen bir uygulama kilitlenir, genel bir hata gösterir, kısıtlanmış kalacak kadar hızlı yeniden dener veya verileri sessizce bırakır. Geliştirme sırasında bunların neredeyse hiçbirini görmezsiniz çünkü API hızlıdır, tek kullanıcı sizsiniz ve test verileriniz küçüktür.
Uygulamanızın istek sınırlarını işlediğini test etme
| Approach | Bulduklarınız | Kaçırdıklarınız |
|---|---|---|
| Üretimi bekleyin | Gerçek oran sınırları | Bir kullanıcı ona tıklayana kadar her şey |
| Testlerinizde API'yi mock’layın veya kodlama ajanınızın mock’u yazmasına izin verin | Yeniden deneme dalınızın çalışıp çalışmayacağı | API'nin gerçek durum kodları, hız sınırı üst bilgileri ve hata gövdeleri ve SDK'nızın yeniden deneme ilkesi. Uygulamanızın mock nesneye erişmek için de yalnızca test amaçlı bir anahtara ihtiyacı vardır. |
| Sizi kısıtlayana kadar gerçek API'yi çağırın | Gerçek davranış | Gerektiğinde limite takılmazsınız, gerçek kotanızı kullanırsınız ve bazı sınırlar yalnızca bir saat sonra sıfırlanır |
| Uygulamanızın gerçek trafiğini yakalama ve sınırı simüle etme | Seçtiğiniz bir sınırla gerçek URL'ler, gerçek SDK'nız, yeniden deneme ilkeniz ve API'nin kendi üst bilgileri | Kodunuz izole halde. Bunu birim testlerinize bırakın. |
Uygulamanızda deneyin
Dev Proxy, uygulamanızın seçtiğiniz API'lere yaptığı istekleri sayar, yanıtlara hız sınırı üst bilgileri ekler ve uygulamanız gerçek URL'leri çağırmaya devam ederken, sınırı aştığında 429 döndürür. Ayrıca, sınır sıfırlanmasından önce uygulamanız API'yi yeniden çağırdığında da size bildirir.
Uygulamanızın çağırdığı API için ön ayarı indirin ve Dev Proxy'yi bununla başlatın:
devproxy config get github-rate-limiting
devproxy --config-file "~dataFolder/configs/github-rate-limiting/.devproxy/devproxyrc.json"
OneDrive ve SharePoint için Microsoft Graph çağrılarında (/drive, /shares, /sites) microsoft-graph-rate-limiting ön ayarını kullanın. Herhangi bir API için kendi sınırınızı ayarlamak üzere Hız sınırı API yanıtlarını simüle etme bölümüne bakın. Geliştirme Proxy'sini yüklemek için bkz. Dev Proxy'yi ayarlama.