Rate limit cho vị trí Senior Backend / Tech Lead: thuật toán, chạy trên nhiều server, cách tính ra con số, chọn phạm vi (từng route, từng user, từng tenant hay cả hệ thống) và vận hành. Ví dụ xuyên suốt: shop Laravel (project laravel-livewire) có thêm API cho đối tác. Nên đọc theo thứ tự 1 → 6. Mọi output là output thật: Laravel 12.64 / 13.34, Redis 8.8, nginx 1.31, php-fpm 8.3, Node 22, PostgreSQL 18.4.
Rate limit, quota, concurrency limit, load shedding khác nhau ở đâu; 4 tầng đặt limiter; 429 + Retry-After; nginx mặc định trả 503; Laravel trả header gì.
Bài 2 · Thuật toánCùng luồng request qua 6 thuật toán: fixed window lọt 199/100 ở ranh giới; sliding log 95 KB/key; GCRA ra số y hệt token bucket với 1 con số; xô hàng đợi bắt chờ 60 giây.
Bài 3 · Phân tánGET rồi INCR cho qua 200/10; throttle của Laravel cho qua tới 50/10 khi 50 worker cùng tới; Redis treo làm mỗi request kẹt 60 giây; failover mất 60 lần đếm; CROSSSLOT.
Bài 4 · Con sốphp-fpm 4 worker: trần lý thuyết 80, thật ~76; tải 1,5× là goodput rơi còn ~18/s và làm phí ~2 000 request; DB chậm thì rate limit cố định sập, concurrency limit thì không; ngưỡng từ percentile.
Bài 5 · Phạm viQuên ->by() là limit chung; throttle:60,1 và 5,1 dùng chung bộ đếm; thứ tự limit làm khách bị chặn oan; trustProxies('*') của Laravel 13 đổi nghĩa; nginx limit_req và 6 cái bẫy.
Bài 6 · Vận hành1 000 client chờ đúng Retry-After tạo đỉnh 441 request/100ms; jitter giảm còn 303; Http::retry của Laravel bỏ qua Retry-After và gửi lại cả POST lỗi 422.