Learn VisualLearn API

トークンバケットは、時間とともにトークンが補充される

トークンバケットは、決まった数のトークンを持つ入れ物で、リクエスト1回につき、トークンを1つ消費します。バケットには、一定の速さで、容量までトークンが補充されます。そのため、補充される速さより遅くリクエストを送るクライアントは、トークンを使い切りません。

バケットが空になると、サーバーは、それ以降のリクエストを、429 Too Many Requestsで拒否します。サーバーは、Retry-Afterヘッダーで、トークンが補充されるまでどれくらい待てばよいかを、クライアントに伝えます。

クライアントは、Retry-Afterの時間を待ってから再送すれば、根拠のない間隔で再試行して再び拒否されることを避けられます。

この課の目標

429とRetry-Afterが何を伝えるか説明できる。レート制限が時間とともにどう補充されるか、トークンバケットの直感で説明できる。

クライアントがRetry-After: 5を伴う429 Too Many Requestsを受け取った。何をすべき?