Bir API için istekleri sınırlamanın en iyi yolu nedir? Temel olarak, kullanıcıları bir saatte 360 API isteklerine sınırlamak istiyoruz (her 10 saniyede bir talep). Ne akla gelen her API isteği izleme ve depoluyor: Sonra saatlik-istekleri sayacı geri almaNasıl API-Limit Nasıl Kullanılır API
429 - Too Many Requests
: ip-adresi istek 360 daha büyüktür
ip-address hourly-requests
1.2.3.4 77
2.3.4.5 34
3.4.5.6 124
, basitçe ile bir başlık dönmek Her saat. Bu çok verimsiz bir yönteme benziyor, çünkü her API talebinde bir MySQL sorgusu yapmak zorundayız. Ayrıca, her saatte tüm sayaçları sıfırlamak için bir cron görevine ihtiyacımız olacak.
daha zarif/verimli bir çözüm var mı?
Daha esnek bir yaklaşım için, [Token Bucket Algorithm] 'a bakabilirsiniz (https://en.wikipedia.org/wiki/Token_bucket). Sayaçlar performans için bazı hafıza deposunda tutulmalıdır. – botchniaque