Load balancing (cân bởi tải) không thể là một thuật ngữ xa lạ trong nghành nghề System.Bài viết này sẽ khối hệ thống lại một số điểm đặc thù và cơ phiên bản của load balancing. Nếu bạn cần hỗ trợ, xin vui lòng contact jenincity.com qua hotline 1900 6046 ext.3, e-mail về support

I. Khái niệm

Trong toàn cảnh các khối hệ thống lớn nên xử lý hàng trăm, mặt hàng ngàn…lượt truy cập đồng thời trường đoản cú phía fan dùng, sau đó phản hồi lại công dụng (text, hình ảnh, video…) một cách đúng đắn nhất, việc không ngừng mở rộng hệ thống bằng phương pháp triển khai thêm server là điều thường thấy. Điều này kéo theo vấn đề phải có một phương pháp giúp phân phối lượng truy cập trên tới toàn bộ các server một cách hợp lý và phải chăng để tối ưu hóa tốc độ xử lý, cũng như không để một server bất kỳ bị quá thiết lập dẫn đến bớt performance của toàn khối hệ thống => Load balancing ra đời

Load balancing là một trong những phương pháp dùng để phân phối traffic đầu vào một cách công dụng đến những server đầu cuối (backend), và nhóm những backend này được điện thoại tư vấn là server farm hoặc server pool.

Bạn đang xem: Load balancing là gì? cách tối ưu năng suất hoạt động server


*

Khi một server ngẫu nhiên trong pool bị tèo, load balancer sẽ sở hữu nhiệm vụ chuyển làn traffic đến các backend còn sống khác trong pool. Tương tự, khi bao gồm một backend new được phân phối pool, load balancer sẽ auto đẩy traffic tới backend đó.

Cần phân biệt một trong những khái niệm sau:

_ Load balancing: là concept, là phương pháp.

_ Load balancer: là đối tượng người tiêu dùng thực hiện nay việc thăng bằng tải, hoàn toàn có thể là một server, một thiết bị chăm dụng…không có chức năng xử lý request, chỉ có trách nhiệm phân phối request tới những backend.

_ Backend server: là server đầu cuối, nơi sẽ xử lý các request đi vào.

_ Server farm / server pool: tập hợp những backend.

II. ích lợi của Load balancing

_ phân phối request của người tiêu dùng một cách kết quả đến nhiều backend, từ kia giúp sút tải lượng các bước phải thực hiện trên từng backend.

_ Đảm bảo tính chuẩn bị cao (high availability) cùng độ tin cậy (reliability) bằng bài toán chỉ gửi request tới các backend sẽ online. Trường đoản cú đó sút thiểu downtime lúc một backend gặp sự cố.

_ Tăng tính linh động của toàn hệ thống khi có thể thêm hoặc sút backend bất cứ lúc nào.

_ Tăng tính bảo mật thông tin của hệ thống vì những backend hôm nay thường sẽ phía trong vùng DMZ (DeMilitary Zone – tạm phát âm là ko được public), người dùng khi kết nối đến khối hệ thống là chỉ đang kết nối đến load balancer thay bởi trực kế tiếp các backend.

III. Phương pháp hoạt động

Khi một request được gửi mang lại hệ thống, request đó sẽ đến load balancer, tùy thuộc theo thuật toán vẫn được thông số kỹ thuật trên load balancer nhưng request đó sẽ được chuyển đến các backend phù hợp để được xử lý. Sau khi được xử trí hoàn tất, response tự backend vẫn trả ngược về load balancer và về tới fan dùng.

Load balancer xác minh một backend có đang online hay không bằng một làm việc gọi là Health check. Sau đó 1 khoảng thời hạn nhất định, load balancer sẽ gửi biểu thị tới những backend để chất vấn xem backend bao gồm còn đang vận động hay không. Giả dụ backend không đánh giá thì load balancer sẽ đào thải backend đó ra khỏi pool. Tùy vào phần mềm / phần cứng dùng làm load balancer nhưng ta hoàn toàn có thể quy định gia tốc gửi health kiểm tra đến backend.

Một số thuật toán load balancing phổ biến:

Round robin: là thuật toán vận chuyển theo vòng. Những backend sẽ có được độ ưu tiên ngang nhau, request sẽ được chia phần nhiều cho tất cả backend theo vòng.Weighted round robin: kiểu như với round robin tuy thế mỗi backend sẽ có thêm trọng lượng (weight), phép tắc độ ưu tiên để nhận request. Ví dụ: tất cả 03 backend A, B, C cùng với weight lần lượt là 4 – 4 – 2. Vậy cùng với 10 request đi vào thì backend A nhấn 4 request, B dìm 4 request, C chỉ dấn 2 request. Việc xác định weight thường phụ thuộc vào thông số kỹ thuật tài nguyên của mỗi backend, backend có tài năng nguyên phệ hơn, được sử dụng thường xuyên hơn nữa thì sẽ gồm weight to hơn.Least Connection: là thuật toán phụ thuộc lượng truy cập hiện có trên mỗi backend. Load balancer sẽ chắt lọc backend đang xử trí ít request nhất nhằm đẩy traffic về.

Xem thêm: Vải Canvas Là Gì - Các Loại Vải Canvas Và Ứng Dụng Của Chúng

IP hash (một số ứng dụng khác còn có tên là Source): là thuật toán phụ thuộc IP nguồn (IP phía bạn dùng) để cung cấp traffic tới backend. Ví dụ dễ nắm bắt là IP nguồn tất cả octet cuối là số lẻ thì về backend lẻ, chẵn thì về backend chẵn…Và những thuật toán khác…

IV. Một trong những phần mềm load balancing

Linux:

Haproxy: http://www.haproxy.org/Nginx: https://www.nginx.com/LVS: http://www.linuxvirtualserver.org/

Windows:

Network load balancing: https://docs.microsoft.com/en-us/windows-server/networking/technologies/network-load-balancing

Bên trên là các phần mềm thông dụng rất có thể dùng trong phần lớn các yêu thương cầu thực thi load balancing. Bằng hữu nếu từ tốn thì đọc qua, không thủng thẳng cũng phát âm qua để hiểu biết thêm và làm quen nhé.