Thiết kế: dựng shortener chịu 38.600 req/s Trung cấp
Thời gian đọc ước tính: 1 phút
Bạn có một danh sách thành phần và một ngân sách. Kéo từng thành phần vào đúng tầng. Mỗi lần thêm hay bỏ, p99, tỉ lệ lỗi, tải database và chi phí đều tính lại ngay.
- Mục tiêu: đạt mọi yêu cầu với chi phí thấp nhất có thể.
- Thử thêm: tìm một thiết kế đạt yêu cầu không dùng CDN, và một thiết kế không dùng Redis. Cái nào đắt hơn, vì sao?
Dựng hệ thống rút gọn link chịu 38.600 req/s
Shortener của bạn sắp chạy chiến dịch lớn. Theo ước lượng ở case study, đỉnh đọc là ~38.600 req/s, ghi chỉ ~39 req/s.
Giả định đơn giản hoá để chơi: 1 app instance chịu ~8.000 req/s, 1 node PostgreSQL chịu ~10.000 lookup/s theo khoá chính, CDN chặn ~50% redirect, Redis hit ~95%. Số liệu minh hoạ, không phải benchmark.
Yêu cầu
- Không lỗi ở đỉnh tải, p99 ≤ 50 ms
- Chặn được bot spam API tạo link
- Chi phí ≤ 20 đơn vị/tháng
Bấm + Thêm ở từng tầng để chọn thành phần. Trên máy tính có thể kéo thành phần thả vào tầng. Chỉ số cập nhật ngay.
Chạm một thành phần để xem nó làm gì.
- Chưa có PostgreSQL: link tạo ra không có chỗ lưu.
- Chưa có App service xử lý redirect.
- Chưa có rate limiter: một bot có thể spam API tạo link và lấp đầy database.
Con số trong game là giả định tròn để dễ tính, không phải benchmark. Cách ước lượng tải đỉnh nằm trong case study URL shortener.