HostingViet | Công ty Cổ phần Công nghệ số Thiên Quang

Load Balancing Là Gì? Lợi ích & các thuật toán Load balancer

Blog Công nghệ | 2025-12-02 11:00:05+07

Load balancing là gì?

Load Balancing (Cân bằng tải) là kỹ thuật phân phối đều lưu lượng truy cập (traffic) đến nhiều máy chủ đầu cuối (hay backend server, server farm, server pool) khác nhau một cách hiệu quả.

Nhờ vào cân bằng tải, các website dễ dàng phục vụ hàng trăm nghìn đến hàng triệu requests đến người dùng trong cùng lúc. Đồng thời, nó phản hồi chính xác nội dung văn bản, hình ảnh, video, dữ liệu ứng dụng một cách nhanh chóng.

Sau đây là các lợi ích của bộ cân bằng tải:

Cách hoạt động của load balancing

Một load balancing hoạt động tương tự như chức năng của “traffic cop” ở phía trước máy chủ, rồi tiến hành định tuyến request từ client trên toàn bộ máy chủ có khả năng thực hiện những request này, để tối ưu tốc độ cũng như hiệu suất. Điều này giúp đảm bảo không xảy ra tình trạng vận hành quá mức cho bất kỳ máy chủ nào. Thêm vào đó, khi có một máy chủ bị hỏng, cân bằng tải sẽ tự động chuyển hướng request đến các máy chủ còn hoạt động khác. Ngoài ra, khi có máy chủ mới được thêm vào hệ thống thì bộ cân bằng tải cũng bắt đầu gửi request đến máy chủ này. 

Như vậy, nhiệm vụ của Load balancing là thực hiện các chức năng sau:

Lợi ích của load balance

Sau đây là các lợi ích của bộ cân bằng tải Load balance:

Một số thuật toán Load balancer phổ biến

Dưới đây là một số thuật toán Load Balancer phổ biến được sử dụng rộng rãi hiện nay:

Có 2 loại thuật toán Load Balancer gồm: thuật toán cân bằng tĩnh và động. Chi tiết sau như:

Một số thuật toán Load balancer phổ biến

Thuật toán cân bằng tải tĩnh

Round Robin (Luân chuyển vòng)

Khi nên dùng: Phù hợp khi các máy chủ trong hệ thống có hiệu năng và tài nguyên tương đương nhau, giúp phân bổ lưu lượng truy cập đồng đều.

Cách hoạt động: Round Robin hoạt động theo cơ chế xoay vòng, mỗi máy chủ lần lượt nhận yêu cầu truy cập theo thứ tự. Phương pháp này đơn giản, dễ triển khai và mang lại hiệu quả tốt trong môi trường đồng nhất.

Nhược điểm: Không xét đến khả năng xử lý thực tế của từng máy chủ, điều này có thể gây mất cân bằng tải nếu một số server yếu hơn.

Cấu hình mẫu trong NGINX:

upstream backend {

    server server1.example.com;

    server server2.example.com;

    server server3.example.com;

}

Weighted Round Robin (Luân chuyển vòng theo trọng số)

Khi nên dùng: Phù hợp khi hệ thống có máy chủ với cấu hình và hiệu năng khác nhau, cần phân bổ tải theo trọng số cụ thể.

Cách hoạt động: Giống với Round Robin nhưng cho phép gán trọng số (weight) cho từng máy chủ. Server mạnh hơn sẽ nhận nhiều lượt yêu cầu hơn, giúp tận dụng tối đa tài nguyên hệ thống.

Nhược điểm: Cần thiết lập trọng số thủ công và điều chỉnh định kỳ khi tải hoặc cấu hình máy chủ thay đổi.

Cấu hình mẫu trong NGINX:

upstream backend {

    server server1.example.com weight=3;

    server server2.example.com weight=1;

    server server3.example.com weight=2;

}

IP Hash (Băm IP)

Khi nên sử dụng: Phù hợp khi bạn muốn người dùng luôn được kết nối đến cùng một máy chủ, đảm bảo tính nhất quán cho phiên làm việc (session consistency).

Cách hoạt động: Thuật toán IP Hash sử dụng địa chỉ IP của client để xác định máy chủ nào sẽ xử lý yêu cầu. Cách này giúp người dùng duy trì kết nối ổn định với một máy chủ cụ thể, rất hữu ích cho các ứng dụng cần lưu trạng thái đăng nhập hoặc giỏ hàng.

Nhược điểm: Dễ dẫn đến phân phối không đồng đều nếu nhiều người dùng có cùng dải IP (ví dụ như khi dùng NAT). Ngoài ra, nếu một máy chủ gặp sự cố, hệ thống có thể không tự cân bằng lại trơn tru.

Cấu hình mẫu trong NGINX:

upstream backend {

    ip_hash;

    server server1.example.com;

    server server2.example.com;

    server server3.example.com;

}

Thuật toán cân bằng tải động

Least Connection (kết nối tối thiểu)

Khi nên dùng: Thích hợp khi một số máy chủ thường xử lý nhiều kết nối hơn các máy chủ còn lại.

Cách hoạt động: Thuật toán này sẽ chuyển yêu cầu đến máy chủ có ít kết nối đang hoạt động nhất, tương tự như việc chọn “hàng chờ ngắn nhất” tại siêu thị giúp tối ưu phân bổ tải theo thời gian thực.

Nhược điểm: Nếu có sự chênh lệch về tốc độ xử lý hoặc cấu hình phần cứng, việc phân phối khả năng cao vẫn chưa hoàn toàn cân bằng.

Cấu hình mẫu trong NGINX:

upstream backend {

    least_conn;

    server server1.example.com;

    server server2.example.com;

    server server3.example.com;

}

Weighted Least Connection (Kết nối tối thiểu theo trọng số)

Khi nên dùng: Tối ưu cho môi trường máy chủ không đồng nhất, có sự chênh lệch về tài nguyên và khối lượng công việc.

Cách hoạt động: Kết hợp hai cơ chế Least Connection và Weighted Round Robin. Thuật toán này phân phối yêu cầu dựa trên số kết nối hiện tại và trọng số của từng server, giúp đạt hiệu quả cân bằng cao hơn.

Nhược điểm: Cần giám sát và cấu hình cẩn thận để duy trì độ chính xác của trọng số, đặc biệt khi lưu lượng thay đổi liên tục.

Cấu hình mẫu trong NGINX:

upstream backend {

    least_conn;

    server server1.example.com weight=3;

    server server2.example.com weight=1;

    server server3.example.com weight=2;

}

Least Response Time (Thời gian phản hồi tối thiểu)

Dựa trên tài nguyên

Đây là thuật toán phân phối yêu cầu dựa trên việc giám sát tài nguyên máy chủ thực tế như CPU, bộ nhớ, băng thông mạng và khả năng xử lý hiện tại.

Đây là thuật toán phân phối yêu cầu dựa trên việc giám sát tài nguyên của máy chủ thực tế. Trước khi phân phối lương lượng truy cập qua, nó sẽ truy cập vào một phần mềm chuyên dụng được gọi là tác nhân chạy trên mỗi máy chủ để đo lường tính khả dụng của bộ nhớ trung tâm và bộ xử lý của máy chủ đó.

Kỹ thuật network load balancing là gì?

Mục đích của load balancing là gì? Đó chính là tổng hợp khả năng vận hành của các máy chủ thành một sức mạnh lớn hơn, giúp tăng cường khả năng chịu lỗi.

Để đạt được mục tiêu này, về mặt kỹ thuật, hệ thống cân bằng tải sẽ bao gồm nhiều hệ thống con sau:

Máy chủ Web 

Máy chủ Database 

Máy chủ Proxy (Load Balancing)

Như khái niệm load balancing là gì đã đề cập ở phần đầu bài viết, máy chủ Proxy là một hệ thống có khả năng chuyển tiếp, kiểm soát thông tin, giúp tăng độ bảo mật cho máy chủ web, và máy chủ dữ liệu. Còn chức năng cân bằng tải (Load Balancing - LB) cho các máy chủ web được cài trên máy chủ Proxy.

Elastic load balancing là gì?

Elastic load balancing là cân bằng tải đàn hồi, giúp phân phối lưu lượng truy cập vào ứng dụng đến các mục tiêu (như địa chỉ IP, vùng lưu trữ...) một cách tự động. Nó có khả năng xử lý tải khác nhau trong duy nhất một hoặc nhiều Availability Zone.

Elastic load balancing cung cấp 3 loại là Classic load balancer, Application load balancer, và Network load balancer. Trong đó:

 

>>Xem thêm: Docker Là Gì? Kiến Thức Cơ Bản Về Docker Không Thể Bỏ Lỡ

Vậy là qua bài viết trên, HostingViet đã giải đáp cho bạn load balancing là gì, cách nó hoạt động, lợi ích và các thuật toán cân bằng tải phổ biến. Hy vọng những thông tin trên hữu ích với bạn.


Bài viết khác