Đang tải...

Cân Bằng Tải (Load Balancing) Là Gì? Tại Sao Hệ Thống Lớn Bắt Buộc Phải Có

06/05/2026
6 phút đọc
Cân Bằng Tải (Load Balancing) Là Gì? Tại Sao Hệ Thống Lớn Bắt Buộc Phải Có
Trong các hệ thống hiện đại như Facebook, Shopee, TikTok hay các nền tảng SaaS, hàng nghìn đến hàng triệu request có thể được gửi đến server mỗi phút. Nếu toà...

Trong các hệ thống hiện đại như Facebook, Shopee, TikTok hay các nền tảng SaaS, hàng nghìn đến hàng triệu request có thể được gửi đến server mỗi phút. Nếu toàn bộ request đều đổ vào một máy chủ duy nhất, hệ thống sẽ nhanh chóng bị quá tải.

Đây là lúc cân bằng tải (Load Balancing) trở thành một thành phần cực kỳ quan trọng.

Cân Bằng Tải Là Gì?

Cân bằng tải (Load Balancing) là kỹ thuật phân phối request từ người dùng tới nhiều server khác nhau nhằm:

  • Tránh quá tải cho một server
  • Tăng tốc độ phản hồi
  • Tăng khả năng chịu lỗi
  • Dễ dàng mở rộng hệ thống

Thay vì:

User -> Server

Hệ thống sẽ hoạt động như sau:

 ┌──────────┐
User Request -> │ Load │
 │ Balancer │
 └────┬─────┘
 │
 ┌───────────┼───────────┐
 │ │ │
 Server 1 Server 2 Server 3

Load Balancer sẽ quyết định request nên được gửi đến server nào.

Vì Sao Cần Cân Bằng Tải?

1. Tránh Server Bị Sập

Nếu chỉ có một server:

  • CPU có thể lên 100%
  • RAM đầy
  • Request timeout
  • Website/app bị treo

Cân bằng tải giúp chia đều lượng truy cập.

2. Tăng Hiệu Năng

Nhiều server xử lý song song sẽ:

  • Giảm độ trễ
  • Tăng tốc độ phản hồi
  • Hỗ trợ nhiều người dùng cùng lúc

3. Dễ Scale Hệ Thống

Ví dụ:

  • 1 server chịu được 1.000 user online
  • 10 server có thể chịu được ~10.000 user online

Khi traffic tăng, chỉ cần thêm server mới.

4. Tăng Tính Ổn Định

Nếu một server chết:

Server 2 ❌

Load Balancer sẽ tự động chuyển traffic sang server còn sống.

Người dùng gần như không nhận ra sự cố.

Các Thuật Toán Cân Bằng Tải Phổ Biến

Round Robin

Request được chia lần lượt:

Request 1 -> Server 1
Request 2 -> Server 2
Request 3 -> Server 3
Request 4 -> Server 1

Ưu điểm

  • Đơn giản
  • Dễ triển khai

Nhược điểm

  • Không quan tâm server mạnh/yếu

Least Connections

Server nào đang ít kết nối nhất sẽ nhận request mới.

Ví dụ:

Server 1: 200 connections
Server 2: 50 connections

Request tiếp theo sẽ vào Server 2.

IP Hash

Dựa theo IP user để quyết định server.

Điều này giúp:

  • User luôn vào cùng một server
  • Hữu ích cho session/login

Weighted Load Balancing

Server mạnh hơn nhận nhiều request hơn.

Ví dụ:

Server A: weight 10
Server B: weight 2

Server A sẽ nhận traffic nhiều hơn.

Các Loại Load Balancer

1. Software Load Balancer

Phổ biến nhất hiện nay.

Ví dụ:

  • NGINX
  • HAProxy
  • Traefik
  • Envoy

Ưu điểm

  • Chi phí thấp
  • Linh hoạt
  • Dễ cấu hình

2. Hardware Load Balancer

Thiết bị vật lý chuyên dụng.

Ví dụ:

  • F5 BIG-IP

Ưu điểm

  • Hiệu năng rất cao

Nhược điểm

  • Giá đắt
  • Khó mở rộng

3. Cloud Load Balancer

Dịch vụ managed từ cloud provider.

Ví dụ:

  • AWS ELB
  • Google Cloud Load Balancer
  • Azure Load Balancer

Ưu điểm

  • Auto scale
  • Dễ triển khai
  • Không cần quản lý hạ tầng

Reverse Proxy Và Load Balancer Khác Gì Nhau?

Nhiều người nhầm giữa hai khái niệm này.

Reverse Proxy

Đứng trước server để:

  • Ẩn backend
  • Cache
  • SSL
  • Routing

Load Balancer

Tập trung vào:

  • Phân phối traffic
  • Chia tải
  • Failover

Thực tế:

NGINX có thể làm cả Reverse Proxy lẫn Load Balancer.

Ví Dụ Cấu Hình Load Balancing Với NGINX

http {
 upstream backend_servers {
 server 192.168.1.10;
 server 192.168.1.11;
 server 192.168.1.12;
 }

 server {
 listen 80;

 location / {
 proxy_pass http://backend_servers;
 }
 }
}

NGINX sẽ tự động chia request giữa các server backend.

Health Check Là Gì?

Load Balancer thường sẽ kiểm tra:

  • Server còn sống không
  • API có phản hồi không
  • Response time có ổn không

Nếu server lỗi:

Server 3 ❌

Load Balancer sẽ loại server đó khỏi hệ thống tạm thời.

Sticky Session Là Gì?

Một số ứng dụng lưu session trong RAM của server.

Ví dụ:

User login ở Server 1

Nếu request tiếp theo vào Server 2:

Session not found

User sẽ bị logout.

Sticky Session giúp user luôn vào cùng một server.

Tuy nhiên hiện nay đa số hệ thống lớn sẽ:

  • Lưu session vào Redis
  • Hoặc dùng JWT

Để tránh phụ thuộc Sticky Session.

Load Balancing Trong Kubernetes

Trong Kubernetes:

  • Service
  • Ingress
  • Ingress Controller

đều có cơ chế cân bằng tải.

Ví dụ:

Ingress
 ↓
Service
 ↓
Pod 1
Pod 2
Pod 3

Kubernetes sẽ tự động phân phối request tới các Pod.

Kiến Trúc Thực Tế

Một hệ thống production thường như sau:

Internet
 ↓
CDN
 ↓
Load Balancer
 ↓
Nginx Reverse Proxy
 ↓
Application Servers
 ↓
Redis / Database

Khi Nào Cần Dùng Cân Bằng Tải?

Bạn nên bắt đầu dùng Load Balancer khi:

  • Có nhiều hơn 1 server
  • Traffic tăng cao
  • Cần HA (High Availability)
  • Không muốn downtime
  • Muốn scale ngang dễ dàng

Kết Luận

Cân bằng tải là nền tảng quan trọng trong mọi hệ thống lớn hiện nay.

Nó giúp:

  • Tăng hiệu năng
  • Tăng độ ổn định
  • Chống quá tải
  • Dễ mở rộng hệ thống

Dù bạn đang xây dựng:

  • Website
  • SaaS
  • Hệ thống crawl
  • Bot automation
  • API backend
  • Kubernetes cluster

thì sớm hay muộn, bạn cũng sẽ cần đến Load Balancing.

Một Số Công Nghệ Phổ Biến

Công Nghệ Mục Đích
NGINX Reverse Proxy + Load Balancer
HAProxy TCP/HTTP Load Balancer
Traefik Dynamic Load Balancer
Envoy Service Mesh Proxy
AWS ELB Cloud Load Balancer
Kubernetes Ingress Container Load Balancing

📚 Nguồn: Viblo

Chia sẻ bài viết

Cần tư vấn?

Liên hệ với chúng tôi để được hỗ trợ

Liên hệ ngay

Bài viết liên quan

Tích hợp đa ngôn ngữ vào Next.js (App Router)
06/05/2026

Tích hợp đa ngôn ngữ vào Next.js (App Router)

![image.png](https://images.viblo.asia/b7071922-d902-468b-99ef-953e94eee8c5.png) ## Giới thiệu Khi xây dựng các dự án hướng đến thị trường toàn cầu hoặc các dịch vụ c?...

Đọc thêm
Hướng dẫn cài đặt Synology Office MCP Server: cho Claude "đọc — ghi" trực tiếp NAS Synology
06/05/2026

Hướng dẫn cài đặt Synology Office MCP Server: cho Claude "đọc — ghi" trực tiếp NAS Synology

Nếu bạn đang dùng Synology NAS làm nơi lưu trữ chính cho tài liệu, bảng tính, email, lịch — và bạn cũng đang xài Claude Desktop hoặc Claude Code hằng ngày — thì s?...

Đọc thêm
Vì Sao Hệ Thống Notification Luôn Cần Queue?
06/05/2026

Vì Sao Hệ Thống Notification Luôn Cần Queue?

Khi xây dựng hệ thống notification: * Push notification * SMS * Email * Zalo * Telegram nhiều người thường làm kiểu: ``` User Action ↓ Gửi notification trực tiếp ``` Ban đ?...

Đọc thêm

Bắt đầu dự án của bạn

Hãy để Flash Dev đồng hành cùng bạn

Liên hệ ngay