C.W.K.
Stream
Lesson 06 of 08 · published

Rate Limits 와 backoff

~22 min · rate-limits, tpm, rpm, backoff

Level 0Tokenizer
0 XP0/54 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

Rate limit 은 처벌이 아니라 budget 이야 — TPM (tokens per minute) 과 RPM (requests per minute) 둘 다. 모든 호출자에게 API 가 동작하도록 잡아주는 contract. 우회하려 들지 말고 limit 안에서 build 해.

Header 가 답을 알려줘

매 성공 응답에 x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens header 가 와. 좋은 client 는 429 터지기 전에 이걸 읽고 미리 backoff 해. 20% 밑으로 떨어지면 concurrency 절반, 80% 위로 회복하면 두 배 — adaptive concurrency.

429 났을 땐 — exponential backoff with jitter

Base 1 초, factor 2, jitter ±20%, max 5 retry. Retry-After header 있으면 그 값 우선. 100 req/min 넘는 client 한테는 jitter 필수 — 동시에 retry 하면 thundering herd 터져.

Code

Rate-limit header 읽기·text
x-ratelimit-limit-requests: 5000
x-ratelimit-limit-tokens: 5000000
x-ratelimit-remaining-requests: 4999
x-ratelimit-remaining-tokens: 4999979
x-ratelimit-reset-requests: 12ms
x-ratelimit-reset-tokens: 362ms

External links

Exercise

429 에 exponential backoff (base 1s, factor 2, jitter ±20%, max 5 retry) 박는 작은 wrapper 짜. Retry-After header 있으면 그 값 우선. 매 retry 의 실제 wait 를 로깅해 — 잠깐 일부러 spam 해서 backoff 가 진짜 wait 하는지 검증.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.