【仕組み解説】APIのレートリミットはどうやってリクエストを制限しているのか — 流量制御の仕組みを図解
APIを使ってると、たまに「429 Too Many Requests」ってエラーが出るんだけど、これって何なの?
えー、なんでわざわざ制限するの?たくさん使わせてくれればいいのに!
なるほど、みんなが快適に使えるようにするための仕組みなんだね!具体的にはどうやって回数を数えてるの?
シンプルでいいね!でも何か弱点とかあるの?
いいところに気づいたね。固定ウィンドウには「境界問題」があるんだ。たとえば0:59に100回、1:00にまた100回リクエストを送ると、実質2秒間に200回のアクセスが集中しちゃう。これを解決するのが「スライディングウィンドウ方式」で、現在時刻から過去1分間をリアルタイムに見て判定するから、境界をまたいだバーストを防げるんだよ。
スライディングウィンドウのほうが賢いんだね!他にも方式ってあるの?
トークンが貯まってれば一気に使えるのは便利だね!ところで、あとどれくらいリクエストできるかってどうやって知るの?
それでも429エラーが出ちゃったときはどうすればいいの?
倍々に待つのは賢いやり方なんだね!レートリミットってアプリのコードで実装するものなの?