Load Balancing là gì?

Article ID: 882
Cập nhật gần nhất: 04 Th01, 2022

Load Balancing là gì?

Load Balancing hay cân bằng tải là một kỹ thuật giúp cho máy chủ không bị quá tải bởi lượng truy cập lớn, bằng cách phân chia truy cập của người dung cho nhiều máy chủ, giúp cho máy chủ có thể chịu tải cao, đảm bảo được tính sẵng sàng của hệ thống.

Nếu không có Load Balancing các máy chủ đơn lẻ duy nhất khó có thể xử lý được một lượng truy cập lớn tại một thời điểm, các truy cập đồng loạt với khối lượng lớn sẽ làm cho máy chủ trở nên quá tải và làm gián đoạn dịch vụ. Khi này việc áp dụng cân bằng tải sẽ giúp cho dịch vụ trở  nên thông suốt, đảm bảo liên tục.

Load Balancing hoạt động thế nào?

Thông thường, Load Balancing khi hoạt động sẽ thực hiện các bước sau:

Tiếp nhận truy cập từ trình duyệt (Browser)

Khi có một lượng lớn khách hàng truy cập vào máy chủ (có thể đến từ trình duyệt, thiết bị di động, App mobile...), máy chủ sẽ tiếp nhận các yêu cầu này thông qua internet.

Phân phối tài nguyên để xử lý

Sau khi tiếp nhận, phần cứng hoặc phần mềm load balancing sẽ xử lý việc phân bổ và điều hường đến các máy chủ để thực hiện việc xử lý yêu cầu của người dùng.

Máy chủ tiếp nhận và xử lý

Tại đây máy chủ nhận yêu cầu từ load balancer để xử lý hoặc trong trường hợp máy chủ không thể tiếp nhận thêm yêu cầu, nó sẽ phản hồi lại với load balancer phân phát cho các máy chủ còn lại để tránh quá tải ở các nút.

Máy chủ trả kết quả về cho người dùng

Sau khi máy chủ xử lý xong, kết quả phản hồi sẽ được chuyển đến người dùng theo thứ tự ngược lại: Máy chủ - > Load Balancing -> Người dùng. 

Lợi ích của Load Balancing

Một hệ thống cân bằng tải hoạt động giống như như một cảnh sát giao thông, nó giúp phân bổ điều lưu lượng trên các máy chủ, tránh ùn tắc làm gián đoạn dịch vụ. Do đó hệ thống sẽ hoạt động hiệu quả hơn.

Ngày nay bộ Load Balancing không chỉ có tác dụng phân tán truy cập, nó còn có nhiều chức năng hơn như tường lửa, Proxy DNS, chống tấn công từ chối dịch vụ DDOS.

Các loại Load balancer và thuật toán sử dụng

Load balancer (cân bằng tải) thường được nhóm thành 2 loại: Layer 4 và Layer 7.

  • Cân bằng tải Layer 4 hoạt động dựa trên dữ liệu tìm thấy trong các giao thức mạng và giao vận layer (IP, TCP, FTP, UDP).
  • Các bộ cân bằng tải Layer 7 phân phối các yêu cầu dựa trên dữ liệu được tìm thấy trong các giao thức layer ứng dụng như HTTP.
  • Bộ cân bằng tải Layer 7 (Load balancer Layer 7) có thể phân phối thêm các requests dựa trên dữ liệu cụ thể của ứng dụng như HTTP header, cookies hoặc dữ liệu trong chính thông báo ứng dụng, chẳng hạn như giá trị của một thông số cụ thể.

Yêu cầu (request) được nhận bởi cả 2 loại Load balancer (cân bằng tải) và chúng được phân phối đến một server cụ thể dựa trên một thuật toán được cấu hình. 

Một số thuật toán được sử dụng trong các hệ thống cân bằng tải là:

  • Round robin: là thuật toán luân chuyển theo vòng. Các backend sẽ có độ ưu tiên ngang nhau, request sẽ được chia đều cho tất cả backend theo vòng.
  • Weighted round robin: giống với round robin nhưng mỗi backend sẽ có thêm trọng lượng (weight), quy định độ ưu tiên để nhận request. Ví dụ: có 03 backend A, B, C với weight lần lượt là 4 – 4 – 2. Vậy với 10 request đi vào thì backend A nhận 4 request, B nhận 4 request, C chỉ nhận 2 request. Việc xác định weight thường phụ thuộc vào cấu hình tài nguyên của mỗi backend, backend có tài nguyên lớn hơn, được sử dụng thường xuyên hơn thì sẽ có weight lớn hơn.
  • Least Connection: là thuật toán dựa vào lượng truy cập hiện có trên mỗi backend. Load balancer sẽ lựa chọn  backend đang xử lý ít request nhất để đẩy traffic về.
  • IP hash (một số ứng dụng khác còn có tên là Source): là thuật toán dựa vào IP nguồn (IP phía người dùng) để phân phối traffic tới backend. Ví dụ dễ hiểu là IP nguồn có octet cuối là số lẻ thì về backend lẻ, chẵn thì về backend chẵn…
  • Và nhiều thuật toán khác…

Load Balancing là một hệ thống tuyệt vời và mỗi thuật toán trên điều có ưu nhược điểm riêng của nó. Lợi ích lớn nhất mà nó mang lại chính là sự đảm bảo hoạt động liên tục của hệ thống máy chủ, tuy nhiên đi kèm theo đó là chi phí cũng khá cao do sử dụng nhiều máy chủ hơn, và đòi hỏi người quản trị phải có kiến thức để vận hành.

Trên đây mình đã giới thiệu cho các bạn về Load Balancing, hy vọng giúp các bạn có cái nhìn tổng quát về hệ thống cân bằng tải.

Đánh giá bài hướng dẫn:  
Báo cáo một vấn đề
Article ID: 882
Cập nhật gần nhất: 04 Th01, 2022
Lần sửa đổi: 1
Lượt xem: 0