Load Balancing — chia tải để server không chết trong im lặng

Website hoặc API chậm, treo, hoặc chết khi nhiều người truy cập cùng lúc là chuyện quá quen thuộc. Thay vì tăng cấu hình cho một server rồi chờ điều kỳ diệu, các hệ thống chuyên nghiệp dùng Load Balancing để chia tải cho nhiều server backend. Load Balancer đảm bảo server không bị “ngộp thở” và hệ thống luôn sẵn sàng ngay cả khi có một node chết.

Load Balancing — chia tải để server không chết trong im lặng

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:

  1. Client gửi request
  2. Load Balancer nhận request
  3. Load Balancer chọn một backend theo thuật toán
  4. 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:

  1. Mark một backend là “out of service”
  2. Deploy code mới vào backend đó
  3. Đư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


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...