Rate limiting, bir API'nin belirli sürede kabul edeceği istek sayısını sınırlamasıdır. Sınıra takılan istemci genellikle 429 (Too Many Requests) yanıtı alır. Sertifika API'lerinde en sık durum sorgulama döngülerinde karşılaşılır.
Belirtiler
- 429 durum kodu veya "rate limit exceeded" benzeri mesaj
- Yanıtta
Retry-Afterbaşlığı - Bazı sağlayıcılarda kalan hakkı gösteren özel başlıklar
Başlık adları ve limit değerleri sağlayıcıya özgüdür; bunları belgeden öğrenin.
Sorunu önleme
- Durum sorgularını seyreltin: saniyeler yerine dakikalar yeterlidir.
- Webhook varsa sorgulama yerine onu kullanın.
- Liste sonuçlarını önbelleğe alın.
- Toplu işleri kuyruğa alıp sabit hızla işleyin.
Üstel geri çekilme
429 alındığında hemen yeniden denemek durumu kötüleştirir. Bekleme süresini her denemede artırın ve rastgelelik (jitter) ekleyin:
deneme=0
while [ $deneme -lt 5 ]; do
kod=$(curl -s -o yanit.json -w "%{http_code}" \
-H "Authorization: Bearer $API_TOKEN" "$URL")
[ "$kod" != "429" ] && break
bekle=$(( (2 ** deneme) + (RANDOM % 3) ))
sleep $bekle
deneme=$((deneme+1))
done
Kendi API'nizi korumak
Bayi olarak kendi müşterilerinize API sunuyorsanız anahtar veya IP başına limit koyun, aşıldığında 429 ve Retry-After döndürün. Bu, hem kötüye kullanımı hem de yanlışlıkla yazılmış sonsuz döngüleri sınırlar.
Yanlış kurgulanmış bir döngü hesabınızın geçici engellenmesine yol açabilir; şüphe durumunda iletişim sayfamızdan Türkçe teknik destek alın. Sertifikaların gerçek durumunu API yerine SSL denetleyici ile de görebilirsiniz.
İzleme
Kaç kez 429 aldığınızı sayan basit bir metrik tutun. Sayı artıyorsa sorgulama sıklığınız gereğinden fazla demektir. İstek hızını yapılandırma dosyasından ayarlanabilir yapmak, yeniden dağıtım yapmadan hızla müdahale etmenizi sağlar.