Load Balancer (Cân bằng tải)
Thành phần đứng trước một cụm máy chủ, phân phối request đến các máy phía sau sao cho không máy nào bị quá tải. Giống nhân viên điều phối ở quầy giao dịch ngân hàng: hướng khách tới quầy còn trống.
Vai trò
- Phân phối đều tải - tránh một máy gánh 90% còn máy khác 10%.
- Tăng Scalability - thêm máy phía sau là mở rộng ngay.
- Tăng Availability - máy hỏng thì LB ngưng gửi request đến đó, chuyển sang máy khác.
- Đơn giản hóa kiến trúc - client chỉ cần một IP/URL, cụm máy phía sau như một máy chủ ảo.
Thuật toán phân phối
| Thuật toán | Cách chọn máy |
|---|---|
| Round Robin | Luân phiên lần lượt A → B → C → A |
| Least Connections | Ưu tiên máy đang ít kết nối nhất (tốt khi request xử lý không đều) |
| IP Hash | Cùng IP client luôn vào cùng server (giữ session stickiness) |
| Weighted Round Robin | Máy mạnh hơn nhận nhiều request hơn theo trọng số |
Layer 4 vs Layer 7
- L4 (Transport): dựa trên IP + port, không hiểu nội dung → nhanh hơn, ít tốn tài nguyên. Hợp cho traffic không phải HTTP (game UDP, VPN).
- L7 (Application): hiểu HTTP/HTTPS, đọc được URL/cookie/header → quyết định thông minh hơn (content-based routing, tách
/video/720pvs/1080p, terminate SSL, sticky session bằng cookie). Chậm hơn L4 một chút. Đa số web lớn dùng L7.
Liên quan
- Scalability - điều kiện để mở rộng ngang
- Availability · Fault Tolerance - loại máy hỏng khỏi vòng
- Chiến lược Resilience - LB + health check
- Failover - cùng mục tiêu giữ dịch vụ liên tục