- Load balancing phân phối traffic tới nhiều server, giảm latency 50-70% và cắt chi phí hạ tầng 30-40%.
- Có 2 nhóm chính: static (Round Robin, Weighted, IP Hash) và dynamic (Least Connections, Least Response Time, Adaptive).
- Adaptive algorithm giúp cloud providers cải thiện response time 40-60% trong lúc traffic spike.
- Mỗi thuật toán có use-case và giới hạn riêng - không có thuật toán nào tốt nhất cho mọi tình huống.
TL;DR
Load balancing phân phối traffic tới nhiều server, ngăn một node nào đó trở thành điểm nghẽn cổ chai. 6 thuật toán phổ biến nhất chia làm hai nhóm: static (Round Robin, Weighted Round Robin, IP Hash) không theo dõi trạng thái server thời gian thực, còn dynamic (Least Connections, Least Response Time, Adaptive) liên tục đo metrics để ra quyết định routing. Chọn đúng thuật toán có thể cải thiện response time 40-60% trong lúc traffic đột biến.

Tại sao load balancing quan trọng đến vậy?
Một server đơn lẻ dù mạnh đến đâu cũng có giới hạn. Khi traffic vượt ngưỡng, response time tăng vọt, server crash - và toàn bộ ứng dụng sập theo. Load balancer đứng trước pool server, phân phối mỗi request theo logic cụ thể để không server nào bị quá tải trong khi server khác rảnh rỗi.
Tác động thực tế:
- Routing theo địa lý giảm latency 50-70%
- Phân phối đều workload giúp cắt giảm chi phí hạ tầng 30-40%
- Server failure được phát hiện và traffic reroute trong 2-10 giây
6 thuật toán cốt lõi
1. Round Robin
Đơn giản nhất: request được gửi tuần tự tới từng server trong pool (A, B, C, A, B, C...). Không cần theo dõi trạng thái, không cần tính toán - overhead gần như bằng 0. Đây là thuật toán được triển khai phổ biến nhất và là điểm khởi đầu mặc định cho hầu hết hệ thống.
Khi nào dùng: server đồng nhất, request processing time tương đương nhau.
Khi nào không dùng: server khác cấu hình, hoặc request có thời gian xử lý chênh lệch lớn.
2. Weighted Round Robin
Phiên bản nâng cấp: mỗi server được gán một trọng số nguyên tương ứng với sức mạnh của nó. Server có trọng số [5, 1, 1] sẽ nhận 5 request cho mỗi 1 request của hai server còn lại. Lý tưởng khi hạ tầng heterogeneous - pha trộn máy chủ legacy bare-metal với cloud instance thế hệ mới.
Hạn chế: trọng số là static, không tự điều chỉnh khi server mạnh bị degraded lúc runtime.
3. Least Connections
Thuật toán dynamic đầu tiên: load balancer theo dõi số connection đang mở trên mỗi server và route request tiếp theo tới server ít kết nối nhất. Hiệu quả vượt trội so với Round Robin khi request processing time thay đổi nhiều - ví dụ database query phức tạp vs. query đơn giản.
Thực tế: nhiều hệ thống chạy song song - Round Robin cho HTTP (port 80) và Least Connections cho database traffic (port 3306).
4. IP Hash
Tính hash từ IP của client (thường dùng MD5), rồi modulo theo số server để xác định server đích. Kết quả: cùng một IP luôn được route tới cùng một server - hay còn gọi là sticky sessions. Không thể thiếu cho ứng dụng stateful: giỏ hàng e-commerce, authenticated session portal.
Rủi ro: hàng trăm user sau cùng một corporate NAT/VPN sẽ có cùng IP, tạo hotspot tải trên một server duy nhất.
5. Least Response Time
Theo dõi đồng thời hai metrics: số active connection và average response time lịch sử. Request được route tới server vừa ít kết nối nhất vừa trả lời nhanh nhất. Khuyến nghị chuyển sang thuật toán này khi load testing cho thấy response time giữa các server chênh nhau trên 30% dưới load bình thường.
Đánh đổi: overhead tính toán cao - phải liên tục đo latency distributed. Network hiccup thoáng qua có thể làm một server bị đánh giá sai.
6. Adaptive (Resource-Based)
Phức tạp nhất nhưng cũng mạnh nhất: agent software chạy trên mỗi server, report CPU, memory, bandwidth về load balancer mỗi 2-5 giây. Load balancer tổng hợp toàn bộ để ra quyết định routing dựa trên sức khỏe thực tế. Các cloud provider lớn báo cáo Adaptive cải thiện response time 40-60% so với static algorithms trong lúc traffic spike.
Hạn chế: cần cài agent trên mọi server; nếu agent fail hoặc trễ, data trở thành stale và routing quyết định sai.
Chọn thuật toán nào?
| Kịch bản | Thuật toán nên dùng |
|---|---|
| Server đồng nhất, traffic đơn giản | Round Robin |
| Hạ tầng pha trộn nhiều cấu hình | Weighted Round Robin |
| Request processing time thay đổi lớn | Least Connections |
| Cần sticky sessions (giỏ hàng, auth) | IP Hash |
| Latency là ưu tiên hàng đầu | Least Response Time |
| Cloud/container, scale co giãn liên tục | Adaptive |
Quy tắc thực tế: bắt đầu với Round Robin, chuyển sang dynamic algorithm khi traffic pattern trở nên phức tạp hoặc khi load test cho thấy server không đều nhau.
Ngoài 6 thuật toán này
Một số lựa chọn bổ sung đáng biết:
- Weighted Least Connections - kết hợp connection count với server weight
- URL Hash - route theo URL path, tăng cache hit ratio đáng kể
- GSLB (Global Server Load Balancing) - routing theo địa lý, giảm latency 40-60%
- SDN Adaptive - tích hợp data từ Layer 2/3/4/7 qua SDN controller
Hướng tiếp theo của ngành: eBPF-based load balancers (Meta Katran, Cilium) route packet ở tầng kernel - ultra-low latency, throughput hàng triệu request/giây. Xa hơn là ML-driven routing có khả năng dự đoán traffic spike trước khi nó xảy ra.
Kết
Load balancing không chỉ là "chia đều request". Mỗi thuật toán giải quyết một bài toán khác nhau - từ đơn giản nhất (Round Robin: zero overhead) đến phức tạp nhất (Adaptive: real-time health monitoring). Hiểu rõ trade-off của từng loại giúp bạn chọn đúng tool cho đúng bài toán.
Nguồn: Cloudflare, Kemp Technologies, AlgoMaster.
