【すろっとりんぐ】

スロットリング とは?

💡 あえてブレーキをかけて、システムを守る技術
📌 このページのポイント
スロットリング — 流量制御の仕組み 制限なし サーバー 過負荷! 💥 ダウン スロットリング適用 制限 サーバー 安定稼働 待機/拒否 代表的な制限方式 レートリミット N回/秒 まで許可 トークンバケット バースト許容型 スライディングウィンドウ 時間窓で制御 リクエスト数を制限してシステムの安定性を維持する仕組み
スロットリングのイメージ
ひよこ ひよこ

スロットリングって、わざと遅くするってこと?なんでそんなことするの?

ペンギン先生 ペンギン先生

サーバーを守るためだよ。たとえばAPIに1秒間に1万リクエストが来たら、さすがにサーバーが倒れちゃう。だから『1秒間に100回まで』みたいに制限をかけるんだ。

ひよこ ひよこ

おもしろい!"なるほど、全員が使えるように制限してるんだね。"

ペンギン先生 ペンギン先生

そうそう。Twitter(X)のAPIも1時間あたりのリクエスト数に上限があるよね。それもスロットリングの一種。制限を超えると『429 Too Many Requests』っていうエラーが返ってくる。

ひよこ ひよこ

フロントエンドでも使うことあるの?

ペンギン先生 ペンギン先生

あるよ!たとえばスクロールイベントは1秒間に何十回も発火するけど、処理を200ミリ秒に1回だけに制限すれば、パフォーマンスが大幅に改善する。lodashのthrottle関数なんかが有名だね。

ひよこ ひよこ

スロットリングとデバウンスって何が違うの?

ペンギン先生 ペンギン先生

スロットリングは「一定間隔で最大1回実行」、デバウンスは「入力が止まってから一定時間後に1回実行」だよ。スクロール中に一定間隔で位置を取得したいならスロットリング、検索ボックスで入力が止まってからAPIを叩きたいならデバウンス。使い分けを間違えるとUXが悪くなるから注意だね。

ひよこ ひよこ

APIでレート制限を超えたらどう対処すればいいの?

ペンギン先生 ペンギン先生

429レスポンスのRetry-Afterヘッダーに「何秒後に再試行してよいか」が書いてあることが多いから、それに従うのが基本だよ。指数バックオフ(1秒→2秒→4秒→8秒と待ち時間を倍にしていく)で再試行するのがベストプラクティス。ベテランエンジニアは事前にレート制限を把握して、クライアント側で自主的にスロットリングをかけるんだ。これを「クライアントサイドレートリミティング」と呼ぶよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
スロットリングは、処理の実行頻度を意図的に抑えることでシステムの安定性を保つ仕組み。API制限からUI最適化まで、幅広い場面で活用されている。
📖 おまけ:英語の意味
「Throttling」 = 絞る、制限する
💬 エンジンのスロットル(出力調整弁)から来ており、全開にせず適切に絞るイメージ
← 用語集にもどる