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

Ngày đăng: 06/02/2023
Lượt xem: 486
Theo dõi: youtube tiktok
Chia sẻ:
Đánh giá: 4.5/5 - (1 bình chọn)

Khi có nhiều người sử dụng hệ thống trong cùng một lúc thì một máy chủ sẽ không có khả năng đáp ứng lưu lượng request lớn. Vì thế, bạn cần tiến hành chia sẻ công việc của nó cho các máy chủ khác. Lúc đó, quá trình tải dữ liệu từ máy chủ nào sẽ được quyết định bởi bộ cân bằng tải (Load balancing). Vậy Load balancing là gì? Mời bạn cùng tìm hiểu nhé!

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.

Load Balancing Là Gì

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

  • Uptime: Khi có một máy chủ gặp sự cố thì các lưu lượng truy cập được chuyển đến các máy chủ còn lại một cách tự động. Điều này giúp cho thời gian uptime tăng, không gây gián đoạn truy cập ngay cả khi xảy ra sự cố.
  • Linh hoạt: Load balancing có sự linh hoạt cao trong điều phối dữ liệu giữa các máy chủ mà không làm gián đoạn, hoặc gây ra bất kỳ ảnh hưởng nào đến hoạt động của hệ thống.
  • Bảo mật: Khi sử dụng load balancing, những yêu cầu truy cập của người dùng được tiếp nhận, xử lý trước khi chuyển đến các máy chủ. Bên cạnh đó, quá trình phản hồi cũng phải thông qua bộ cân bằng tải. Nhờ thế, người dùng không thể giao tiếp trực tiếp với máy chủ, giúp cho các thông tin cũng như cấu trúc của mạng nội bộ được ẩn. Điều này góp phần chặn được các cuộc tấn công mạng, và sự xâm nhập trái phép.

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:

  • Phân phối hiệu quả các request từ máy khách hoặc lưu lượng tải mạng (network load) đến nhiều máy chủ.
  • Đảm bảo tính khả dụng, độ tin cậy cao thông qua việc gửi yêu cầu đến các máy chủ còn hoạt động.
  • Dễ dàng thêm hoặc bớt máy chủ theo nhu cầu sử dụng.

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:

  • Uptime: Khi có một máy chủ gặp sự cố thì các lưu lượng truy cập sẽ được Load balance chuyển đến các máy chủ còn lại một cách tự động. Điều này giúp cho thời gian uptime tăng, không gây gián đoạn truy cập ngay cả khi xảy ra sự cố.
  • Linh hoạt: Load balancing có sự linh hoạt cao trong điều phối dữ liệu giữa các máy chủ mà không làm gián đoạn, hoặc gây ra bất kỳ ảnh hưởng nào đến hoạt động của hệ thống.
    Bảo mật: Khi sử dụng load balancing, những yêu cầu truy cập của người dùng được tiếp nhận, xử lý trước khi chuyển đến các máy chủ. Bên cạnh đó, quá trình phản hồi cũng phải thông qua
  • Là bộ cân bằng tải: Nhờ thế, người dùng không thể giao tiếp trực tiếp với máy chủ, giúp cho các thông tin cũng như cấu trúc của mạng nội bộ được ẩn. Điều này góp phần chặn được các cuộc tấn công mạng, và sự xâm nhập trái phép.

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
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)

  • Khi nên sử dụng: Thích hợp trong môi trường mà tốc độ phản hồi là yếu tố quan trọng hàng đầu.
  • Cách hoạt động: Thuật toán này chuyển yêu cầu đến máy chủ có thời gian phản hồi nhanh nhất, giúp tối ưu hiệu suất truy cập và giảm độ trễ. Mặc dù NGINX mặc định không hỗ trợ trực tiếp, bạn có thể kích hoạt tính năng này thông qua module bên thứ ba như Nginx Upstream Fair Module.
  • Nhược điểm: Yêu cầu cấu hình bổ sung và theo dõi hiệu năng máy chủ liên tục, điều này có thể làm hệ thống phức tạp hơn và tăng khả năng xảy ra lỗi nếu không giám sát chặt chẽ.

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 

  • Là một hệ thống được public trên môi trường internet nhằm phục vụ cho mục đích quảng bá sản phẩm, dịch vụ, hình ảnh của doanh nghiệp đến người dùng.
  • Cho phép toàn bộ người dùng internet tìm kiếm, trao đổi thông tin với website nên tốc độ truy cập, khả năng vận hành ổn định phải được đảm bảo.

Máy chủ Database 

  • Đây là hệ thống cơ sở dữ liệu chung để máy chủ web truy cập và lấy dữ liệu, sau đó hiển thị lại nội dung trên website.
  • Máy chủ cơ sở dữ liệu sẽ chứa tất cả các thông tin liên quan hoạt động của doanh nghiệp, bao gồm thông tin nội bộ lẫn thông tin được công bố bên ngoài.
  • Hệ thống dữ liệu bắt buộc phải có đủ độ mạnh, khả năng ổn định, đồng thời độ an toàn dữ liệu cao.

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.

load balancing la gi

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 đó:

  • Classic load balancer (Bộ cân bằng tải cổ điển): Là loại cân bằng tải cơ bản trên Amazon EC2, hoạt động ở cấp yêu cầu lẫn cấp kết nối. Nó được phát triển nhằm hỗ trợ cho các ứng dụng trong mạng EC2-Classic.
  • Application load balancer: Là loại ứng dụng rất phù hợp cho cân bằng tải HTTP, HTTPS. Nó cung cấp định tuyến cho các yêu cầu nâng cao, giúp phân phối những ứng dụng có kiến trúc hiện đại, kể cả microservices và container. Application load balancer hoạt động ở Layer 7, dựa vào nội dung yêu cầu để cân bằng request đến các mục tiêu có trong Amazon VPC (Amazon Virtual Private Cloud).
  • Network load balancer: Loại này phù hợp cho cân bẳng tải lưu lượng TCP và hoạt động ở Layer 4. Nó có khả năng cân bằng tải đến các mục tiêu trong Amazon VPC với năng lực xử lý đến hàng triệu request mỗi giây, và độ trễ rất thấp. Ngoài ra, Network load balancer còn được tối ưu nhằm xử lý các lưu lượng không ổn định, có tính chất đột ngột. 

load balancing la gi

 

>>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ình luận
  • Báo xấu
    Phản hồi
    {comment_author}
    {comment_content}
Bài viết liên quan
 
Chi tiết và bản sửa lỗi bảo mật gần đây cùng Bản vá của CyberPanel
2024/10/30

Chi tiết và bản sửa lỗi bảo mật gần đây cùng Bản vá của CyberPanel

CyberPanel giải thích về lỗi Sau khi nhận được thông báo của 2 chuyên gia bảo mật về một lỗ hổng bảo mật do thiếu điều kiện mã h&...
Tác giả:
Đọc thêm
 
Cách nâng cao trải nghiệm người dùng website hiệu quả
2024/05/28

Cách nâng cao trải nghiệm người dùng website hiệu quả

Trải nghiệm người dùng là gì? Trải nghiệm người dùng website (User Experience) là cảm nhận của người dùng về tập hợp c&a...
Tác giả:
Đọc thêm
 
Tìm hiểu về Private Cloud và ứng dụng trong doanh nghiệp
2023/08/29

Tìm hiểu về Private Cloud và ứng dụng trong doanh nghiệp

I. Giới thiệu về Private Cloud Khái niệm Private Cloud: Private cloud là mô hình điện toán đám mây trong đó...
Tác giả:
Đọc thêm
 
Hướng dẫn tổng quan về iDrac 8 - tổng quan các tính năng iDrac
2023/08/29

Hướng dẫn tổng quan về iDrac 8 - tổng quan các tính năng iDrac

Nó chủ yếu sử dụng các tài nguyên riêng biệt cho tài nguyên máy chủ chính và cung cấp giao diện d&...
Tác giả:
Đọc thêm
 
3 cách tạo Email doanh nghiệp miễn phí cực đơn giản, nhanh chóng
2023/08/29

3 cách tạo Email doanh nghiệp miễn phí cực đơn giản, nhanh chóng

Trong thời đại kỹ thuật số phát triển mạnh mẽ như hiện nay, email là một phương tiện truyền thông không thể thiếu trong hoạt động kinh doanh của mọi doanh nghiệp. Nế...
Tác giả:
Đọc thêm
 
Cách Giảm Dung Lượng File Excel, Nén File Excel Nhanh Và Đơn Giản
2023/08/29

Cách Giảm Dung Lượng File Excel, Nén File Excel Nhanh Và Đơn Giản

Cách giảm dung lượng File Excel Sử dụng phần mềm Winrar hay Zip-7 cũng là cách nén file excel để gửi mail. Ngoài ra, c&ograv...
Tác giả:
Đọc thêm