【とーくんばけつ】
トークンバケット とは?
公開:
💡 「前払い貯金」で突発的な混雑をさばくレート制御
バケツにトークンを一定速度で補充し、リクエスト時にトークンを消費することで、バーストを許容しながら平均レートを制御するアルゴリズム。
📌 このページのポイント
ペンギン先生、トークンバケットってどんな仕組みなの?
バケツが満杯のときはどうなるの?
溢れた分は捨てられるよ。上限があるから「貯めすぎ」は防げる。でも貯まってるあいだに一気に使えるのがポイントで、これをバースト許容って言うんだ。
じゃあ普段ゆっくりしか使わない人は、たくさん貯めて一気に使えるんだね!
そう!API制限でよくある「1分100リクエスト」も、均一に1秒1.67件ではなく、残高があれば最初の数秒で一気に処理できる柔軟さを持てるんだよ。
リーキーバケットとはどう違うの?
リーキーバケット(穴あきバケツ)は出力を必ず一定速度に平滑化するよ。トークンバケットは「入力速度の上限を設ける」設計で、バーストを許容する点が大きな違いだね。
実際のシステムでは何に使われてるの?
まとめ:ざっくりこれだけ覚えればOK!
「トークンバケット」って出てきたら「貯まったトークンを使ってリクエストを処理するレート制御」と思えればだいたいOK!
📖 おまけ:英語の意味
「Token Bucket」 = トークンバケット
💬 バケツ(bucket)にトークンを溜めて使う仕組みで、残高があれば一時的に多くのリクエストを処理できる「貯金」型レート制限だよ