Eşzamanlı bağlantılar, genellikle iş parçacıkları (threads) olarak adlandırılır, bir proxy üzerinden aynı anda açık tutabileceğiniz istek sayısını ifade eder. 50'lik bir sınır, 50'ye kadar isteğin paralel olarak çalışabileceği anlamına gelir. Birisi tamamlandığında, diğeri başlayabilir. Daha fazla eşzamanlılık büyük işleri daha hızlı bitirir, ancak her açık bağlantı, proxy ve hedef sunucu üzerinde kaynak kullanır.
Bir 429 Too Many Requests durumu, belirli bir zaman diliminde çok fazla istek gönderdiğiniz anlamına gelir.
İş Parçacıkları, Bağlantılar ve İstekler
- İş Parçacığı (Thread): Kendi programınızdaki bir iş birimi. Basit bir scraper'da, her iş parçacığı bir istek gönderir ve yanıtını bekler.
- HTTP/1.x: Bir bağlantı, istekleri çoğunlukla birer birer işler, bu nedenle HTTP/1.0 ve HTTP/1.1 istemcileri eşzamanlı istekler yapmak için birkaç bağlantı açar.
- HTTP/2: Bir bağlantıda birden fazla istek, akışlar (streams) olarak birbirine karıştırılabilir. Bir sunucu,
SETTINGS_MAX_CONCURRENT_STREAMSile sınırını belirler. - Neden önemli: İş parçacığı sayınız, açık bağlantılarınız ve uçuşta olan istekleriniz her zaman aynı sayı olmayabilir, bu nedenle bir sınırın hangi sayıya atıfta bulunduğunu kontrol edin.
Güvenli Bir Eşzamanlılık Seviyesi Seçmek
- İhtiyatlı olun: HTTP/1.1 spesifikasyonu (RFC 9112), bir istemcinin belirli bir sunucuya aynı anda açık bağlantı sayısını sınırlaması gerektiğini belirtir. Kesin bir maksimum belirlemez.
- Neden: Her bağlantı sunucu kaynaklarını tüketir ve çok sayıda paralel bağlantı, daha az bağlantının önleyebileceği tıkanıklıklara neden olabilir.
- Retry-After'a Saygı Gösterin: Bir
429 Too Many Requestsyanıtı, tekrar denemeden önce ne kadar beklemeniz gerektiğini belirten birRetry-Afterbaşlığı içerebilir.