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.
Thông thường, Load Balancing khi hoạt động sẽ thực hiện các bước sau:
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.
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.
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.
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.
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.
Load balancer (cân bằng tải) thường được nhóm thành 2 loại: Layer 4 và Layer 7.
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à:
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.