Load Balancing là gì? Cách tối ưu năng suất hoạt động Server
Thịnh Văn Hạnh 17/11/2022 1639 Lượt xem Chia sẻ bài viết
Nếu có quá nhiều người dùng trong hệ thống, một máy chủ không thể xử lý một số lượng lớn yêu cầu cùng một lúc. Bạn phải chia sẻ công việc của máy chủ hiện tại với các máy chủ khác. Hiện tại, bộ cân bằng tải quyết định tải dữ liệu từ máy chủ nào sẽ rời đi. Hãy cùng BKNS tìm hiểu giải pháp cân bằng tải máy chủ hoàn chỉnh qua bài viết Load Balancing là gì nhé!
Load Balancing là gì?
Tóm Tắt Bài Viết
Load Balancing là gì?
Load Balancing hay “cân bằng tải” là một trong những tính năng quan trọng nhất đối với các nhà phát triển và lập trình web.
Để dễ hình dung, bạn thường gặp trường hợp sau khi sử dụng Internet:
Bạn đang sử dụng mydomain.com trực tiếp mà không có Load Balancing thì rất có thể dẫn đến những tình huống như không xử lý kịp thời, tải chậm, thậm chí không kết nối được khi máy chủ ngừng hoạt động. Điều này xảy ra do có quá nhiều người đang sử dụng ứng dụng cùng một lúc, v.v. Và đây là lúc cân bằng tải phát huy tác dụng.
Bộ cân bằng tải được thêm vào khi máy chủ ngừng hoạt động hoặc không thể xử lý. Người dùng truy cập vào load balancer sẽ được chuyển hướng đến một máy chủ khác để hoàn thành tác vụ. Cho dù máy chủ chính bị hỏng hoặc quá tải, tất cả các yêu cầu của người dùng đều được xử lý.
Xem thêm: Cloud VPS Hosting là gì? Chi Tiết về Cloud VPS Hosting
Lợi ích khi có Load Balancing là gì?
Uptime: Với load balancing, lưu lượng sẽ tự động được chuyển hướng đến máy chủ còn lại khi một máy chủ gặp sự cố. Do đó, trong hầu hết các trường hợp, các sự cố bất ngờ có thể được phát hiện và xử lý nhanh chóng mà không làm gián đoạn truy cập của người dùng.
Trung tâm dữ liệu linh hoạt: Một ưu điểm khác của cân bằng tải là sự phối hợp linh hoạt giữa các máy chủ. Tự động phối hợp 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 hoạt động chung của hệ thống.
Bảo vệ trung tâm dữ liệu: Khi sử dụng load balancing, các yêu cầu của người dùng sẽ được nhận và xử lý trước khi phân phối đến các máy chủ. Đồng thời, load balancing cũng ngăn người dùng giao tiếp trực tiếp với máy chủ, ẩn dữ liệu và cấu trúc mạng nội bộ, ngăn chặn các cuộc tấn công mạng hoặc truy cập mạng bất hợp pháp…
Các giao thức mà Load Balancing có thể xử lý là gì?
UDP Load Balancer cung cấp độ trễ thấp cho các ứng dụng trực tuyến. Có 4 loại giao thức chính mà quản trị Load Balancer có thể tạo quy định chuyển tiếp:
HTTP: HTTP: dựa trên cơ chế HTTP chuẩn, đưa ra yêu cầu tác vụ. Load Balancer đặ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.
Các giao thức mà Load Balancing có thể xử lý là gì?
HTTPS: Hoạt động tương tự như HTTP Balancing. Tính năng cân bằng HTTPS được tích hợp sẵn mã hóa và được xử lý theo hai cách: “SSL truyền qua giữ mã hóa đến phần phụ trợ” hoặc: “SSL cuối đặt tải giải mã lên bộ cân bằng tải và gửi lưu lượng được mã hóa đến backend”.
TCP: Trong một số trường hợp ứng dụng không sử dụng giao thức HTTP hoặc HTTPS, TCP là một giải pháp để cân bằng lưu lượng. Đặc biệt, khi có lưu lượng truy cập vào cụm cơ sở dữ liệu, TCP sẽ giúp phân phối lưu lượng giữa tất cả các máy chủ.
UDP: Load Balancer gần đây đã thêm hỗ trợ cho các giao thức cân bằng tải cơ bản sử dụng UDP, chẳng hạn như DNS và syslogd
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 Load Balancing – Round Robin là gì?
Round Robin là một thuật toán chọn máy chủ theo thứ tự. Do đó, Load Balancer bắt đầu di chuyển từ máy chủ số 1 trong danh sách của nó ở yêu cầu đầu tiên. Sau đó, nó di chuyển xuống danh sách và bắt đầu lại ở trên cùng khi đến máy chủ cuối cùng.
Nhược điểm của Load Balancer – Round Robin là nếu người dùng liên tục nhận được 2 yêu cầu, yêu cầu đó sẽ được gửi đến 2 máy chủ khác nhau. Cần có thời gian để thiết lập thêm kết nối với máy chủ thứ hai, trong khi máy chủ thứ nhất cũng có thể đáp ứng thông tin mà người dùng cần. Để giải quyết vấn đề này, round robin thường được cài đặt cùng với các phương pháp quản lý phiên như cookie
Thuật toán Load Balancing – Weighted Round Robin là gì?
Tương tự như kỹ thuật Round Robin, nhưng WRR cũng có thể xử lý bất kỳ cấu hình máy chủ mục tiêu nào. Mỗi máy chủ được xếp hạng bởi một số nguyên (giá trị trọng số – mặc định là 1). Một máy chủ có dung lượng gấp đôi máy chủ kia có khối lượng lớn hơn và nhận được gấp đôi số lượng yêu cầu từ bộ cân bằng tải.
Nhược điểm của thuật toán Weighted Round Robin là nó gây ra sự mất cân bằng tải động khi tải yêu cầu thay đổi liên tục trong một khoảng thời gian dài.
Thuật toán Load Balancing – Dynamic Round Robin (DRR) là gì?
Thuật toán DRR hoạt động gần giống như thuật toán WRR. Sự khác biệt là trọng số dựa trên việc kiểm tra máy chủ liên tục. Đó là lý do tại sao quy mô liên tục thay đổi. Việc lựa chọn máy chủ dựa trên nhiều phân tích hiệu suất máy chủ thời gian thực.
Thuật toán Load Balancing – Dynamic Round Robin
Ví dụ: Số lượng kết nối hiện tại đến máy chủ hoặc máy chủ phản hồi nhanh nhất … Thuật toán này thường không được triển khai trong các bộ cân bằng đơ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 Load Balancing – Fastest là gì?
Đây là một thuật toán dựa trên việc tính toán thời gian phản hồi (response time) của mỗi máy chủ. Thuật toán này chọn máy chủ có thời gian phản hồi nhanh nhất. Thời gian phản hồi được xác định giữa việc gửi gói đến máy chủ và nhận gói phản hồi.
Bộ cân bằng tải xử lý việc gửi và nhận này. Dựa trên phản hồi, bộ cân bằng tải biết máy chủ nào sẽ gửi yêu cầu tiếp theo. Thuật toán nhanh nhất thường được sử dụng khi các máy chủ ở các vị trí địa lý khác nhau.
Do đó, nếu người dùng ở gần máy chủ thì thời gian phản hồi của máy chủ đó sẽ nhanh nhất. Cuối cùng, một máy chủ được chọn để phục vụ.
Thuật toán Load Balancing – Least Connections là gì?
Các yêu cầu được chuyển đến máy chủ có ít kết nối nhất trong hệ thống. Thuật toán này đượ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 máy chủ.
Least Connections có thể sẽ 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. Do đó, sử dụng RC khắc phục được nhược điểm của Round Robin.
Cách Load Balancing xử lý trạng thái là gì?
Trong nhiều trường hợp, ứng dụng yêu cầu người truy cập tiếp tục kết nối với cùng một máy chủ phụ trợ (Backend Server). Thuật toán mã nguồn tạo kết nối dựa trên thông tin IP của máy khách. Đối với các ứng dụng web chạy qua phiên nhúng, Cân bằng tải sẽ đặt cookie. Tất cả các yêu cầu phiên được chuyển đến máy chủ vật lý.
Tổng kết
Hi vọng những thông tin trong bài viết sẽ giúp bạn đọc hiểu rõ về Load Balancing. Nó là một trong những thành phần cơ sở hạ tầng quan trọng nhất của ngành công nghiệp mạng máy tính. Hãy chú ý đến các thông tin liên quan để cải thiện hiệu suất và khiến người dùng hài lòng hơn với dịch vụ trực tuyến của bạn.