Load Balancing là gì
Load Balancing là kỹ thuật phân phối request từ client tới nhiều backend server. Mục tiêu: đảm bảo hiệu năng, tránh quá tải và tăng khả năng chịu lỗi của hệ thống.
Tại sao cần Load Balancing
Nếu bạn chạy một server duy nhất:
- Server quá tải → hệ thống chậm hoặc chết hoàn toàn
- Server lỗi → downtime toàn hệ thống
- Nâng cấp khó → mỗi lần deploy là gián đoạn
Load Balancing giải quyết tất cả bằng cách phân tải cho nhiều backend. Một server chết, hệ thống vẫn chạy.
Load Balancing hoạt động như thế nào
Luồng xử lý cơ bản:
- Client gửi request
- Load Balancer nhận request
- Load Balancer chọn một backend theo thuật toán
- Backend xử lý và trả về kết quả
Client không biết backend nào xử lý; chỉ Load Balancer biết.
Các thuật toán phổ biến
- Round Robin: phân đều từng request theo thứ tự vòng tròn
- Least Connection: gửi request tới server đang rảnh nhất
- IP Hash: cùng một IP luôn vào cùng một server (hữu ích cho session)
Load Balancer còn làm được gì ngoài chia tải
- Health Check: server nào lỗi sẽ bị loại khỏi danh sách
- SSL Offloading: xử lý HTTPS tại Load Balancer
- Sticky Session: giữ session người dùng vào đúng server
- Failover: server chết, traffic chuyển sang server khác
Load Balancer phần mềm phổ biến
- Nginx (vừa reverse proxy vừa load balancer)
- HAProxy (legend trong load balancing, rất nhanh và ổn định)
- Traefik (định tuyến động, tuyệt vời cho Docker/Kubernetes)
Kiến trúc đơn giản với Load Balancer
Một mô hình phổ biến khi scale website:
- Layer 1: Load Balancer
- Layer 2: Nhiều backend app (Node.js, PHP-FPM, Java…)
- Layer 3: Database và Redis Cache
Load Balancing giúp deploy không downtime
Khi deploy:
- Mark một backend là “out of service”
- Deploy code mới vào backend đó
- Đưa backend vào lại pool
Cứ thế rollout từng backend, hệ thống không downtime.
Khi nào cần Load Balancing
- Traffic tăng và server bắt đầu đuối
- Cần high availability
- Muốn deploy không gián đoạn
Kết luận
Load Balancing không chỉ là chia tải, mà là nền tảng để hệ thống hoạt động bền vững, chịu tải tốt và không còn cảnh server chết trong im lặng. Thay vì đổ tiền nâng cấp một server “quái vật”, hãy chia nhỏ workload cho nhiều server và dùng Load Balancer làm trung tâm điều phối.
Bình luận