Load Balancing là gì? Các thuật toán trong Load Balancing
Thịnh Văn Hạnh 06/12/2022 1433 Lượt xem Chia sẻ bài viết
Làm thế nào để đảm bảo rằng các trang web không bị quá tải khi lượt truy cập quá nhiều cùng một lúc? Bạn lo lắng vì server chính gặp sự cố, không có server nào để thay thế và tiếp tục các tiến trình đang dang dở, dẫn đến website rơi vào tình trạng downtime, gây những tổn thất và ảnh hưởng to lớn đến trải nghiệm người dùng, doanh thu, uy tín và hiệu quả hoạt động của doanh nghiệp. Hãy xem xét việc sử dụng công nghệ hiện đại có tên là Load Balancing.
Tóm Tắt Bài Viết
Load Balancing là gì?
Load Balancing là tính năng giúp máy chủ ảo hoạt động đồng bộ và hiệu quả hơn thông qua việc phân phối đồng đều tài nguyên. Nó cũng là một trong những tính năng rất quan trọng với những nhà phát triển, lập trình mạng.
Load Balancing phân chia tài nguyên giúp các máy chủ hoạt động hiệu quả hơn
Để dễ hình dung, bạn sẽ thường gặp trường hợp này khi dùng Internet:
Truy cập vào website yourdomain.com kết nối trực tiếp không có Load Balancing sẽ thế nào? Rất có thể sẽ không kịp xử lý, tải chậm, thậm chí không kết nối được khi máy chủ down. Trường hợp này xảy ra vì có quá nhiều người cùng lúc truy cập, ứng dụng,… Và đây chính là lúc mà Load Balancing thể hiện vai trò của mình.
Khi máy chủ down hoặc không thể xử lý, một Load Balancer sẽ được bổ sung. Người dùng truy cập vào load balancer. Tiếp tục được chuyển đến một máy chủ khác để thực hiện tác vụ. Dù máy chủ chính bị down hoặc nghẽn thì tất cả các yêu cầu của người dùng đều được giải quyết.
Xem thêm: Gzip là gì? Cách thêm Gzip tăng tốc website hiệu quả
Lợi ích khi có Load Balancing là gì?
Uptime
Với Load Balancing, khi máy chủ gặp sự cố, lưu lượng truy cập sẽ được tự động chuyển đến máy chủ còn lại. Nhờ đó, trong hầu hết mọi trường hợp, sự cố bất ngờ có thể được phát hiện và xử lý kịp thời, không làm gián đoạn các truy cập của người dùng.
Datacenter linh hoạt
Khả năng linh hoạt trong việc điều phối giữa các máy chủ cũng là một ưu điểm khác của Load Balancing. Tự động điều phối giữa các máy chủ cũ và mới để xử lý các yêu cầu dịch vụ mà không làm gián đoạn các hoạt động chung của hệ thống.
Không có Load Balancing rất dễ gặp các vấn để về bảo mật
Bảo mật cho Datacenter
Bằng cách sử dụng Load Balancing, những yêu cầu từ người dùng sẽ được tiếp nhận và xử lý trước khi phân chia đến các máy chủ. Đồng thời, quá trình phản hồi cũng được thông qua Load Balancing, ngăn cản việc người dùng giao tiếp trực tiếp với máy chủ, ẩn đi thông tin và cấu trúc mạng nội bộ, từ đó chặn đứng những cuộc tấn công mạng hay truy cập trái phép…
Các thuật toán Load Balancing là gì?
Tùy thuộc công nghệ Load Balancing mà các thuật toán khác nhau sẽ được sử dụng để định tình trạng của máy chủ có hoạt động hay không. Có các loại thuật toán thường thấy là:
Thuật toán Round Robin
Round Robin là thuật toán lựa chọn các máy chủ theo trình tự. Theo đó, Load Balancer sẽ bắt đầu đi từ máy chủ số 1 trong danh sách của nó ứng với yêu cầu đầu tiên. Tiếp đó, nó sẽ di chuyển dần xuống trong danh sách theo thứ tự và bắt đầu lại ở đầu trang khi đến máy chủ cuối cùng.
Nhược điểm của thuật toán Load Balancing
Khi có 2 yêu cầu liên tục từ phía người dùng sẽ có thể được gửi vào 2 server khác nhau. Điều này làm tốn thời gian tạo thêm kết nối với server thứ 2 trong khi đó server thứ nhất cũng có thể trả lời được thông tin mà người dùng đang cần. Để giải quyết điều này, round robin thường được cài đặt cùng với các phương pháp duy trì session như sử dụng cookie.
Thuật toán Weighted Round Robin
Load Balancer sử dụng thuật toán cho việc xác định tình trạng các máy chủ
Tương tự như kỹ thuật Round Robin nhưng WRR còn có khả năng xử lý theo cấu hình của từng server đích. Mỗi máy chủ được đánh giá bằng một số nguyên (giá trị trọng số Weight – mặc định giá trị là 1). Một server có khả năng xử lý gấp đôi server khác sẽ được đánh số lớn hơn và nhận được số request gấp đôi từ bộ cân bằng tải.
Nhược điểm của thuật toán Weighted Round Robin là gây mất cân bằng tải động nếu như tải của các request liên tục thay đổi trong một khoảng thời gian rộng.
Thuật toán Dynamic Round Robin
Thuật toán DRR hoạt động gần giống với thuật toán WRR. Điểm khác biệt là trọng số ở đây dựa trên sự kiểm tra server một cách liên tục. Do đó trọng số liên tục thay đổi.
Việc chọn server sẽ dựa trên rất nhiều khía cạnh trong việc phân tích hiệu năng của server trên thời gia thực. Ví dụ: số kết nối hiện đang có trên các server hoặc server trả lời nhanh nhất, …
Thuật toán này thường không được cài đặt trong các bộ cân bằng tài đơn giản. Nó thường được sử dụng trong các sản phẩm cân bằng tải của F5 Network.
Thuật toán Fastest
Đây là thuật toán dựa trên tính toán thời gian đáp ứng của mỗi server (response time). Thuật toán này sẽ chọn server nào có thời gian đáp ứng nhanh nhất. Thời gian đáp ứng được xác định bởi khoảng thời gian giữa thời điểm gửi một gói tin đến server và thời điểm nhận được gói tin trả lời.
Việc gửi và nhận này sẽ được bộ cân bằng tải đảm nhiệm. Dựa trên thời gian đáp ứng, bộ cân bằng tải sẽ biết chuyển yêu cầu tiếp theo đến server nào.
Thuật toán Fastest thường được dùng khi các server ở các vị trí địa lý khác nhau. Như vậy người dùng ở gần server nào thì thời gian đáp ứng của server đó sẽ nhanh nhất. Cuối cùng server đó sẽ được chọn để phục vụ.
Thuật toán Least Connections
Các request sẽ được chuyển vào server có ít kết nối nhất trong hệ thống. Thuật toán này được coi như thuật toán động, vì nó phải đếm số kết nối đang hoạt động của server.
Least Connections có khả năng hoạt động tốt. Ngay cả khi tải của các kết nối biến thiên trong một khoảng lớn. Do đó nếu sử dụng RC sẽ khắc phục được nhược điểm của Round Robin.
Load Balancer dự phòng là gì?
Cài đặt Load Balancer dự phòng là một giải pháp tối ưu
Trong nhiều trường hợp, chỉ có một Load Balancer là điểm truy cập duy nhất. Chính vì vậy, chúng ta cần có một Load Balancer thứ hai. Nó sẽ được kết nối với Load Balancer ban đầu. Mục đích để mỗi Load Balancer đều có khả năng phát hiện lỗi và phục hồi.
Sẽ ra sao khi xảy ra trường hợp Load Balancer chính bị lỗi? Balancer thứ hai sẽ nhận trách nhiệm thay thế, do DNS di chuyển người dùng đến. Tuy nhiên, việc thay đổi DNS có thể mất nhiều thời gian trên internet. Và để chuyển đổi dự phòng được tự động, các quản trị viên sẽ cho phép linh hoạt địa chỉ IP Remapping. Chẳng hạn như trường hợp này là floating IPs.
IP Remapping giúp loại bỏ các vấn đề bộ nhớ đệm vốn có trong những thay đổi DNS. IP Remapping sẽ cung cấp một địa chỉ IP tĩnh. Địa chỉ IP này có thể được dễ dàng ánh xạ lại khi cần thiết. Tên miền có thể duy trì liên kết với các địa chỉ IP. Trong khi các địa chỉ IP của chính nó được di chuyển giữa các máy chủ.
Tổng kết
Hy vọng rằng những thông tin được cung cấp trong bài viết sẽ giúp bạn đọc đã có được cái nhìn tổng quan về Load Balancing. Đây một trong những thành phần cơ sở hạ tầng quan trọng nhất của ngành mạng máy tính. Hãy lưu ý kỹ các thông tin về chúng để cải thiện hiệu suất cũng như khiến người dùng hài lòng hơn về dịch vụ mạng của mình.
Cảm ơn bạn đã đón đọc bài viết. Có thể bạn cũng quan tâm đến:
>> IPv4 và IPv6 – Khái Niệm Và So Sánh Hai Giao Thức Mạng
>> FTP Server Là Gì? Kiến Thức Để Sử Dụng FTP Server Thành Thục Nhất
>> Dedicated Server Là Gì? Ưu Nhược Điểm Của Dedicated Server
Theo dõi BKNS thường xuyên hơn tại các nền tảng mạng xã hội:
>> Fanpage: https://www.facebook.com/bkns.vn
>> Youtube: https://www.youtube.com/c/BknsVn1
>> Pinterest: https://www.pinterest.com/bknsvn/
>> LinkedIn: https://www.linkedin.com/company/bkns-vn/
[mautic type=”form” id=”6″]