Load Balancing là gì? Cách tối ưu năng suất hoạt động Server
Load Balancing gồm có những thuật toán gì và có thể xử lý những giao thức nào? Tìm hiểu cách tối ưu năng suất hoạt động Server với Load Balancing. Load Balancing là một tính năng công nghệ quan trọng trong lĩnh vực mạng máy tính. Chúng giúp tối ưu các nguồn lực, giảm thời gian chờ, tránh tình trạng quá tải và giúp server hoạt động một cách đồng bộ, hiệu quả. Hãy cùng Viettelnet tìm hiểu kỹ hơn về giải pháp công nghệ này ngay trong bài viết dưới đây. 
MỤC LỤC
I. Load Balancing là gì?
Load Balancing hay cân bằng tải là một trong những tính năng vô cùng quan trọng đối với những nhà phát triển, lập trình mạng. Theo đó, tính năng này sẽ giúp xử lý, tăng tốc độ tải, kết nối khi có quá nhiều người cùng lúc truy cập vào ứng dụng,… Cụ thể, khi máy chủ down hoặc không thể xử lý, 1 Load Balancer sẽ được bổ sung và người dùng sẽ truy cập vào nó. Lúc này, người dùng sẽ tiếp tục được chuyển đến một máy chủ khác để thực hiện tác vụ. Chính vì vậy, 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 sẽ được giải quyết một cách nhanh chóng.
II. Load Balancing đem lại những lợi ích gì?
1. Uptime
Khi máy chủ gặp sự cố, lưu lượng truy cập sẽ được Load Balancing chuyển đến máy chủ còn lại. Nhờ vậy, các kết nối, truy cập của người dùng sẽ được thông suốt, liền mạch, không gặp gián đoạn giữa chừng.
2. Datacenter linh hoạt
Load Balancing có khả năng tự động điều phối giữa máy chủ cũ và mới, giúp 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.
3. Bảo mật cho Datacenter
Thông qua Load Balancing, những yêu cầu từ người dùng sẽ được tiếp nhận, xử lý trước khi phân chia đến các máy chủ. Đồng thời, nó cũng can thiệp vào quá trình phản hồi giúp ngăn cản việc giao tiếp trực tiếp với máy chủ, từ đó chặn đứng những cuộc tấn công mạng hay truy cập trái phép.
III. Load Balancing có thể xử lý những giao thức nào?
Quản trị Load Balancer có thể tạo quy định chuyển tiếp với 4 loại giao thức chính như sau:
1. HTTP
HTTP Balancing đưa ra yêu cầu tác vụ dựa trên cơ chế HTTP chuẩn. Cụ thể, Load Balancer sẽ đặt X-Forwarded-For, X-Forwarded-Proto và tiêu đề X-Forwarded-Port để cung cấp các thông tin backends về những yêu cầu ban đầu.
2. HTTPS
HTTPS Balancing được xử lý bằng 2 cách:
- Pass Through SSL duy trì mã hóa tất cả các con đường đến backend.
- Chấm dứt SSL, để load balancer giải mã và gửi lưu lượng được mã hóa đến backend.
3. TCP
Với giao thức này, khi có một lượng truy cập vào một cụm cơ sở dữ liệu, TCP sẽ giúp lan truyền lưu lượng trên tất cả máy chủ
4. UDP
Đây là giao thức được Load Balancer bổ sung thêm vào thời gian gần đây nhằm hỗ trợ cân bằng tải giao thức internet lõi như DNS và syslogd sử dụng UDP.
IV. Load Balancing gồm có những thuật toán gì?
Tùy thuộc vào công nghệ Load Balancing mà các thuật toán sử dụng sẽ khác nhau. Các loại thuật toán Load Balancing thường thấy gồm:
1. Round Robin
Đây là một thuật toán chọn máy chủ theo thứ tự. Theo đó, Load Balancer sẽ bắt đầu di chuyển từ máy chủ số 1 trong danh sách, sau đó di chuyển xuống và bắt đầu lại ở trên cùng khi đến máy chủ cuối cùng. Tuy nhiên, khi có 2 yêu cầu liên tục từ người dùng, yêu cầu đó sẽ được gửi đến 2 máy chủ khác nhau. Điều này làm tốn thời gian thiết lập thêm kết nối với máy chủ thứ 2 trong khi máy chủ thứ nhất cũng có thể đáp ứng thông tin mà người dùng đang cần.
2. Weighted Round Robin (WRR)
Ngoài các cơ chế tương tự như kỹ thuật Round Robin, WRR còn có khả năng xử lý bất kỳ cấu hình của từng máy chủ đích. Mỗi máy chủ được đánh giá bởi một số nguyên, máy chủ nào có dung lượng cao hơn máy chủ khác sẽ được đánh số lớn hơn và nhận được số lượng yêu cầu nhiều hơn từ bộ cân bằng tải.
3. Dynamic Round Robin (DRR)
Thuật toán DRR có cơ chế hoạt động gần giống với thuật toán WRR. Tuy nhiên, sự khác biệt ở đây chính là trọng số dựa trên việc kiểm tra máy chủ liên tục. Chính vì thế, trọng số sẽ liên tục thay đổi. Việc lựa chọn máy chủ sẽ dựa trên nhiều phân tích hiệu năng máy chủ thời gian thực, chẳng hạn như: Số lượng kết nối hiện tại đến máy chủ hoặc máy chủ phản hồi …
4. Fastest
Đây là thuật toán dựa trên việc tính toán thời gian đáp ứng (response time) của mỗi máy chủ. Theo đó, thuật toán Fastest sẽ chọn máy chủ có thời gian phản hồi . Thời gian phản hồi được xác định bằng khoảng thời gian giữa việc gửi gói đến máy chủ và nhận lại gói phản hồi. Việc xử lý 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 phản hồi, bộ cân bằng tải sẽ biết gửi yêu cầu tiếp theo đến máy chủ nào.
5. Least Connections
Least Connections được coi là thuật toán động vì nó phải đếm số lượng kết nối đang hoạt động trên server. Nhờ vậy, các yêu cầu sẽ được chuyển đến server có ít kết nối trong hệ thống. Đặc biệt, thuật toán này còn có thể hoạt động tốt ngay cả khi tải kết nối thay đổi trên một khu vực rộng.
V. Cách Load Balancing xử lý trạng thái
Trong nhiều trường hợp, ứng dụng yêu cầu người dùng tiếp tục kết nối với cùng một máy chủ Backend. Lúc này, thuật toán mã nguồn sẽ tạo ra một kết nối dựa trên thông tin IP của khách hàng. Đối với các trang web chạy qua sticky sessions, cân bằng tải sẽ đặt cookie. Cuối cùng, tất cả các yêu cầu từ sessions sẽ được chuyển đến máy chủ vật lý để xử lý.
VII. Load Balancer dự phòng là gì?
Trong nhiều trường hợp, chỉ có 1 Load Balancer là điểm truy cập . Để loại bỏ việc này, 1 load balancer thứ hai có thể được kết nối với cái ban đầu để tạo thành một cụm. Mục đích của việc này là để mỗi Load Balancer đều có khả năng phát hiện lỗi và phục hồi. Khi Load Balancer chính bị lỗi, Load Balancer thứ hai sẽ nhận trách nhiệm thay thế và được DNS di chuyển người truy cập đến. Tuy nhiên, việc thay đổi DNS có thể mất một lượng thời gian đáng kể. Do đó, các quản trị viên sẽ sử dụng hệ thống, cho phép linh hoạt địa chỉ IP Remapping, ví dụ như các floating IPs.
VII. Khi nào thì sử dụng Load balancer?
Load balancer được sử dụng khi website của bạn được triển khai trên nhiều hơn một cloud server. Cụ thể, nếu bạn chỉ triển khai website của mình trên một server , việc xử lý lượng traffic của một khối lượng user lớn truy cập vào website và tính sẵn sàng của dịch vụ doanh nghiệp sẽ không được đảm bảo. Từ đó, gây ảnh hưởng to lớn đến trải nghiệm người dùng, doanh thu và uy tín của doanh nghiệp. Tuy nhiên, khi triển khai website lên nhiều server, bạn vẫn sẽ gặp phải một số khó khăn như sau:
- Một domain website không thể trỏ về nhiều địa chỉ cloud servers cùng lúc.
- Việc quản trị, triển khai và bảo trì trở nên phức tạp, khó khăn hơn, đòi hỏi tính chuyên môn và kỹ thuật cao.
Lúc này, Load balancer chính là giải pháp tuyệt vời có thế giải quyết triệt để các vấn đề kể trên.










