Load balancer là gì? Vì sao phải Load balancer?

5/5 - (1 bình chọn)
Khi hệ thống có quá nhiều người sử dụng, một server đơn lẻ không đáp ứng được lượng requests khổng lồ được gửi đến cùng lúc. Bạn cần chia sẻ công việc của server hiện tại với các server khác nữa. Khi này, việc tải dữ liệu từ server nào sẽ do bộ cân bằng tải quyết định. Cùng Cloud Server CMC tìm hiểu giải pháp cân bằng tải hoàn hảo cho server qua bài viết dưới đây.

Load balancer – Cân bằng tải là gì?

1. Load balancer là gì?

Load balancing (Cân bằng tải) là việc phân phối hiệu quả lưu lượng truy cập đến trên một nhóm backend servers, hay còn được gọi là server farm hoặc server pool.

Các website hiện đại có lưu lượng truy cập cao phải phục vụ hàng trăm nghìn, thậm chí hàng triệu các requests đồng thời từ người dùng hoặc khách hàng, đồng thời phải phản hồi chính xác lại các văn bản, hình ảnh, video hoặc dữ liệu ứng dụng, tất cả đều được thực hiện rất nhanh chóng và đáng tin cậy. Để đáp ứng hiệu quả khối lượng lớn các yêu cầu và phản hồi một cách tiết kiệm nhất, best practice tốt nhất thường sẽ là sử dụng thêm servers.

Một load balancer (Cân bằng tải) hoạt động như “traffic cop” (cảnh sát giao thông) ở phía trước server và routing các request của client trên tất cả các servers có khả năng thực hiện các request đó, sao cho tối ưu về tốc độ và hiệu suất nhất và đảm bảo rằng không có server nào phải hoạt động quá mức. Nếu một server đơn lẻ bị hỏng, cân bằng tải (load balancer) sẽ chuyển hướng lưu lượng truy cập đến các server trực tuyến còn lại. Khi một server mới được thêm vào nhóm máy chủ, bộ cân bằng tải sẽ tự động bắt đầu gửi yêu cầu đến máy chủ mới thêm này.

Tóm lại, một load balancer sẽ thực hiện các chức năng chính sau đây:

– Phân phối các client requests hoặc network load một cách hiệu quả trên nhiều servers.

– Đảm bảo tính khả dụng và độ tin cậy cao bằng cách chỉ gửi các yêu cầu đến các máy chủ trực tuyến.

– Thêm vào hoặc loại bớt các servers theo yêu cầu một cách linh hoạt và dễ dàng.

Có thể bạn quan tâm : Dịch vụ Elastic Compute CMC Cloud sử dụng Load Balancer

2. Session Persistence

Thông tin về phiên của người dùng thường được lưu trữ cục bộ trong trình duyệt.

Load balancer là gì?
Session Persistence

Ví dụ: trong ứng dụng shopping cart, các sản phẩm trong giỏ hàng của người dùng có thể được lưu trữ ở cấp trình duyệt cho đến khi người dùng sẵn sàng mua chúng. Thay đổi server nào nhận được request từ khách hàng ở giữa phiên mua sắm có thể gây ra các vấn đề về hiệu suất hoặc gây lỗi giao dịch. Trong những trường hợp như vậy, điều quan trọng là tất cả các request từ một khách hàng phải được gửi đến cùng một server trong suốt thời gian của phiên. Điều này được gọi là Session Persistence.

Các cân bằng tải tốt nhất có thể xử lý Session Persistence khi cần thiết. Một trường hợp khác của Session Persistence đó là khi một upstream server lưu trữ thông tin được yêu cầu bởi người dùng trong bộ nhớ đệm của nó để tăng hiệu suất. Việc chuyển đổi các servers sẽ khiến thông tin đó được tìm nạp lần thứ hai, gây ảnh hưởng đến hiệu suất.

3. 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 điều phối vòng tròn, các máy chủ sẽ được xem ngang hàng và sắp xếp theo một vòng quay. Các truy vấn dịch vụ sẽ lần lượt được gửi tới các máy chủ theo thứ tự sắp xếp.

– Weighted round robin: 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.

– Least connections: Các requests 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.

Load balancer là gì?
Least connections

– Least response time:  Đâ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.

– IP Hash: Thuật toán xác định kết nối chính xác từ một IP của máy khách sẽ được kết nối trực tiếp đến một server backend.

Vì sao bạn phải sử dụng Load balancer cho Server?

Có thể bạn quan tâm :Dịch vụ CDN CMC

Khi nào sử dụng Load balancer (Cân bằng tải)?

Load balancer (Cân bằng tải) đước sử dụng khi website của bạn được triển khai trên nhiều hơn một cloud server.

Sau đây là 2 khó khăn chính bạn sẽ gặp phải nếu chỉ triển khai website của mình trên một server duy nhất:

– Không thể đảm bảo xử lý được lượng traffic của một khối lượng user lớn truy cập vào website (đủ lớn để 1 cloud server không thể tải nổi).

Cụ thể, khi hệ thống của bạn có quá nhiều người sử dụng, một server đơn lẻ không thể đáp ứng được lượng requests khổng lồ được gửi đến cùng lúc. Bạn cần chia sẻ công việc của server hiện tại với một hoặc nhiều server khác nữa. Tức là sử dụng nhiều server một lúc, khi này, việc tải dữ liệu từ server nào sẽ do bộ Load balancer (Cân bằng tải)  quyết định.

– Không đảm bảo tính sẵn sàng của dịch vụ doanh nghiệp (nếu chỉ sử dụng duy nhất 1 cloud server, khi cloud server này gặp sự cố, không hề có server nào có thể thay thế tiếp tục các tiến trình đang dang dở, đấn đến website rơi vào tình trạng downtime theo). Gây 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.

Đó chính là lý do mà chúng ta phải triển khai website trên nhiều cloud server cùng một lúc, bởi vì không có gì đảm bảo cho việc một server sẽ luôn hoạt động trơn tru và hoàn hảo mãi mãi. Bằng cách triển khai nhiều, khi server gặp sự cố, server còn lại ngay lập tức là phương án hỗ trợ, không làm gián đoạn hoạt động của doanh nghiệp. Trên thực tế, những tổn thất do hệ thống thông tin ngừng hoạt động là cực kỳ to lớn và không thể lường trước được.

Tuy nhiên, khi triển khai website lên nhiều server, hiệu quả là vậy nhưng bạn vẫn chắc chắn sẽ gặp phải các khó khăn tiếp theo sau đây:

– Triển khai nhiều cloud servers, tức đồng thời bạn sẽ sở hữu nhiều địa chỉ của các cloud servers. Trong khi đó, một domain website lại không thể trỏ về nhiều địa chỉ cùng một lúc.

– Bạn càng sở hữu nhiều servers, việc quản trị, triển khai và bảo trì càng trở nên phức tạp và khó khăn gấp nhiều lần. Đòi hỏi tính chuyên môn và kĩ thuật cao, chưa kể chi phí cho các thao tác này.

Load balancer là gì?
Load balancer là giải pháp tuyệt vời

Lúc này, Load balancer (Cân bằng tải) chính là câu trả lời và là giải pháp tuyệt vời có thế giải quyết hoàn hảo triệt để các vấn đề kể trên.

Nếu có thắc mắc cần hỗ trợ thông tin,quý khách hàng vui lòng liên hệ số điện thoại : 0901 999 602 hoặc Fanpage CMC Telecom Đà Nẵng

0/5 (0 Reviews)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *