API 요청을 제한하는 가장 좋은 방법은 무엇입니까? 기본적으로 사용자는 한 시간에 360 회의 API 요청을 할 수 있습니다 (10 초마다 요청). 무엇을 마음에 오는 것은 모든 API 요청을 추적하고 저장한다 : 다음 시간마다-요청을 카운터를 롤백API의 속도를 제한하는 방법
429 - Too Many Requests
다음 IP 주소 요청 (360)보다 큰
ip-address hourly-requests
1.2.3.4 77
2.3.4.5 34
3.4.5.6 124
경우, 단지와 헤더를 반환 매시간. 카운터를 증가시키기위한 모든 API 요청에 대한 MySQL 쿼리를 작성해야하므로 매우 비효율적 인 방법 인 것 같습니다. 또한 매 시간마다 모든 카운터를 재설정하는 cron 작업이 필요합니다.
더 우아하고 효율적인 솔루션이 있습니까?
더욱 탄력적 인 접근 방법으로 [Token Bucket Algorithm] (https://en.wikipedia.org/wiki/Token_bucket)을 살펴볼 수 있습니다. 카운터는 성능을 위해 일부 메모리 저장소에 보관해야합니다. – botchniaque