Bọc Giáp Go & Bóp Cổ API (Rate Limiting) — Xô Nhận Thẻ (Token Bucket), Xô Lủng Đáy (Leaky Bucket) & Bùa Redis Lua

Điều kiện tiên quyết: Đây là Phần 11 của Khóa Học System Design. Mấy hồi trước hì hục xây đắp xương sống lõi cốt (core components) — hồi này vác khiên bọc giáp cho mớ APIs và múa roi quất dẹp loạn bọn khách sộp ùa dâng ngập lụt (traffic spikes) lúc phình bành. Answer-first: Đòn bóp cổ nặn API (API rate limiting) bọc hậu bảo kê ba cái mỏ dịch vụ (backend services) bằng cách siết cổ vặn vòi lượng rác ọc vô (request volume). An ninh phòng thủ bắt buộc xài trò nhồi lô cốt n lớp (layered defense): Tiền đồn Tường Lửa WAF đập vỡ mõm bầy sóng thần dâng lụt trào (volumetric spikes) ngay ngưỡng cửa, Trạm Gác API Gateways cầm trịch vé tàu (credentials) và mâm cỗ (quotas) ở L7, và cuối cùng bọn bảo kê gầm giường (application middleware) nắm chốt siết gắt gao mớ luật mần ăn chi li (fine-grained business limits). Đòi móc mả vạch mặt thằng khách (client identification) thì phải ngậm bùa bắt IP tróc gốc, bảo mật kín kẽ (xài chiêu PROXY protocol hoặc lột sụn bấu vô cái chót X-Forwarded-For chót lọt tận mép phải). ...

18 tháng 6, 2026 · 16 phút · Tanh

Cân Bằng Tải L4/L7 Trong Go — DSR, Rate Limiting & API Gateway

Điều kiện tiên quyết: Đây là Phần 2 của Khóa Học System Design. Hãy đọc Phần 1: Tư Duy System Design trước để nắm vững các khuôn rập đánh đổi (trade-off frameworks) nền tảng. Answer-first: Cân bằng tải L4 (L4 load balancing) định tuyến traffic dựa trên dữ liệu siêu dữ liệu tầng giao vận (transport-layer) (IP/TCP/UDP) — chi phí CPU cực kỳ bèo bọt (minimal CPU overhead) nhưng độ thông minh thì hạn hẹp. Cân bằng tải L7 (L7 load balancing) thì xoi mói vào các headers, paths, và cookies của HTTP — cho phép định tuyến dựa trên nội dung (content-based routing) và rà soát sức khỏe cấp cao, bù lại phải trả giá bằng chi phí xử lý cao hơn cho từng cái request (higher processing overhead per request). ...

18 tháng 6, 2026 · 16 phút · Tanh

Chương 3: Distributed Rate Limiting Với Redis & Thuật Toán GCRA

← Bài trước | Series hub | Tiếp theo → Chương 3: Bảo Mật APIs Bằng Distributed Rate Limiting Nếu caching là tấm khiên che chở cơ sở dữ liệu, thì Rate Limiting (giới hạn lưu lượng) lại là bộ giáp che chắn cho các máy chủ API của bạn khỏi các cuộc tấn công DDoS và tình trạng cạn kiệt tài nguyên gây ra bởi những clients lạm dụng. Tại Sao Local Rate Limiting Thất Bại Trong Microservices Answer-first: Các hệ thống limiters lưu trên RAM cục bộ (local RAM) thất bại bởi vì Load Balancers có nhiệm vụ phân tán traffic ra nhiều nodes. Một người dùng được cấp hạn mức 100 req/sec hoàn toàn có thể lợi dụng một cluster 5 nodes để gửi thốc 500 req/sec, dễ dàng chọc thủng hàng rào giới hạn. Việc gom trạng thái tập trung (Centralized state) qua Redis là bắt buộc. ...

9 tháng 6, 2026 · 5 phút · Tuan Anh

Kiến Trúc Shopee Flash Sale: Ngắt Họng & Redis

🇬🇧 Read the English version of this article on tanhdev.com Điểm đúng boong 0 giờ mùa 11.11, cái rớ con nghiện Shopee tuốt tuột dải Đông Nam Á với Đài Loan đè ngón vô xào chung 1 cái nút bấm nẩy. Độc trong 10 giây nòng châm hỏa (first 10 seconds) của 1 cái mùa săn sale chớp nhoáng (flash sale), 1 cái trang quầy rác (single product page) có thể bị cả triệu mống (millions of concurrent sessions) nã liên thanh — bu xâu nhào zô giành mớ 1,000 nhúm đồ lổn nhổn nhét kho (inventory). Thẩy lố 1 cục (One oversell), đứt bóng 1 cục máy (server crash), hay cái cục kho quẹt chết lâm sàng (database deadlock) lọt chỏm ở khúc đó hất đổ 1 sớ ná thở đâm chọc móc tiền (cascade of chargebacks), rớ con dân nhảy đổng (angry users), dìm mặt ụp bãi rác tờ đầu mốc nhép giang hồ bới (front-page news headlines). ...

1 tháng 6, 2026 · 19 phút · Tuan Anh