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ánCách chọn máy
Round RobinLuâ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 HashCùng IP client luôn vào cùng server (giữ session stickiness)
Weighted Round RobinMá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/720p vs /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