Load balancing là gì?

17/01/2022

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. Nhiệm vụ chính của Load Balancing là gì?

Load Balancing là gì?

Load Balancing hay “Cân bằng tải” 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.

Để 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.

Tại sao bạn cần biết về Load Balancing? Đây là một trong những yếu tố rất cần thiết khi bạn quyết định lựa chọn thuê Hosting và thuê Server. Đặc biệt hầu hết các Cloud Hosting, bạn nên tham khảo bài viết sau:

Những loại giao thức load balancers có thể xử lý:

Quản trị Load balancer tạo quy định chuyển tiếp đối với bốn loại giao thức chính:

  • HTTP - Chuẩn HTTP balancing chỉ đạo yêu cầu dựa trên cơ chế HTTP chuẩn. Load Balancer đặt X-Forwarded-For, X-Forwarded-Proto, và tiêu đề X-Forwarded-Port để cung cấp cho các thông tin backends về các yêu cầu ban đầu.
  • HTTPS - HTTPS balancing với các chức năng tương tự như HTTP balancing, với sự bổ sung của mã hóa. Mã hóa được xử lý theo một trong hai cách: hoặc là với passthrough SSL duy trì mã hóa tất cả con đường đến backend hoặc chấm dứt SSL mà đặt gánh nặng giải mã vào load balancer nhưng gửi lưu lượng được mã hóa đến back end.
  • TCP - Đối với các ứng dụng không sử dụng HTTP hoặc HTTPS, lưu lượng TCP cũng có thể được cân bằng. Ví dụ, lượng truy cập vào một cụm cơ sở dữ liệu có thể được lan truyền trên tất cả các máy chủ.
  • UDP - Gần đây, một số load balancer đã thêm hỗ trợ cho cân bằng tải giao thức internet lõi như DNS và syslog sử dụng UDP.

Những quy tắc chuyển tiếp sẽ xác định các giao thức và cổng vào load balancer và bản đồ chúng đến các giao thức và cổng load balancer sẽ sử dụng để định tuyến lưu lượng trên backend.

Làm thế nào để load balancer chọn máy chủ backend?

Load balancers chọn máy chủ để chuyển tiếp yêu cầu dựa trên sự kết hợp của hai yếu tố. Lần đầu tiên sẽ đảm bảo rằng bất kỳ máy chủ được lựa chọn có thể thực sự đáp ứng yêu cầu và sau đó sử dụng một quy tắc được cấu hình sẵn để lựa chọn trong số đó.

Health Checks

Load balancer chỉ chuyển tiếp lưu lượng đến "healthy" backend server. Để theo dõi sức khỏe của một backend server, kiểm tra sức khỏe thường xuyên bằng cách cố gắng kết nối với backend server sử dụng giao thức và cổng được định nghĩa bởi các quy tắc chuyển tiếp để đảm bảo rằng các máy chủ đang lắng nghe. 

Nếu một máy chủ không kiểm tra sức khỏe, và do đó không thể phục vụ yêu cầu, nó sẽ tự động loại bỏ khỏi vùng chứa, và request sẽ không được chuyển tiếp đến nó cho đến khi nó đáp ứng việc kiểm tra sức khỏe một lần nữa.

Các thuật toán load balancer

Các thuật toán load balancer được sử dụng xác định của máy chủ lành mạnh trên backend sẽ được lựa chọn. Một số các thuật toán thường được sử dụng là:

  • Round Robin - Round Robin có nghĩa là các máy chủ sẽ được lựa chọn theo tuần tự. Bộ load balancer sẽ chọn máy chủ đầu tiên trong danh sách của mình đối với yêu cầu đầu tiên, sau đó di chuyển xuống trong danh sách theo thứ tự, bắt đầu lại ở đầu trang khi đi đến cuối cùng.
  • Least Connections - load balancer sẽ chọn máy chủ với các kết nối ít nhất.
  • Source - Với các thuật toán mã nguồn, load balancer sẽ chọn máy chủ để sử dụng dựa trên một hash của IP nguồn của yêu cầu, chẳng hạn như địa chỉ IP của người truy cập. Phương pháp này đảm bảo rằng một người dùng cụ thể sẽ luôn kết nối với cùng một máy chủ.

Các thuật toán có người quản lý khác nhau tùy thuộc vào công nghệ load balancer sử dụng.

Làm thế nào để load balancer xử lý trạng thái?

Một số ứng dụng yêu cầu người dùng tiếp tục kết nối đến cùng một backend server. Một thuật toán mã nguồn tạo ra một mối quan hệ dựa trên thông tin IP khách hàng. Một cách khác để đạt được điều này ở mức ứng dụng web là thông qua sticky sessions, nơi load balancer đặt một cookie và tất cả các requests từ sessions hướng đến một máy chủ vật lý.

Load balancer dự phòng

Để loại bỏ việc load balancer như một điểm truy cập duy nhất, một load balancer thứ hai có thể được kết nối với cái đầu tiên để tạo thành một cụm. Mỗi load balancer là đều có khả năng phát hiện lỗi và phục hồi.

Trong trường hợp load balancer chính bị lỗi, DNS phải đưa người dùng đến các bộ load balancer thứ hai. Bởi vì thay đổi DNS có thể mất một lượng thời gian đáng kể để được tải lên Internet và để làm cho chuyển đổi dự phòng này tự động, nhiều quản trị viên sẽ sử dụng hệ thống, cho phép linh hoạt địa chỉ IP Remapping, chẳng hạn như các floating IPs. 

Theo yêu cầu địa chỉ IP Remapping giúp loại bỏ các vấn đề tuyên truyền, bộ nhớ đệm vốn có trong những thay đổi DNS bằng cách cung cấp một địa chỉ IP tĩnh 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ủ.

Đây là cách một cơ sở hạ tầng sử dụng Floating IPs có thể xem xét:  

Lợi ích khi có Load Balancing là gì?

load balacingKhông có Load Balancing rất dễ gặp các vấn để về bảo mật

  • 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.

  • 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 giao thức mà Load Balancing có thể xử lý là gì?

Load BalancerUDP 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: dựa trên cơ chế HTTP chuẩn, HTTP Balancing đư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.
  • HTTPS: các chức năng tương tự HTTP Balancing. HTTPS Balancing được bổ sung mã hóa và nó được xử lý bằng 2 cách: passthrough SSL duy trì mã hóa tất cả con đường đến backend hoặc: chấm dứt SSL, đặt gánh nặng giải mã vào load balancer và gửi lưu lượng được mã hóa đến backend.
  • TCP: trong một số trường hợp khi ứng dụng không sử dụng giao thức HTTP hoặc HTTPS, TCP sẽ là một giải pháp để cân bằng lưu lượng. Cụ thể, 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ả các máy chủ
  • UDP: trong thời gian gần đây, Load Balancer đã bổ sung thêm hỗ trợ cho cân bằng tải giao thức internet lõi như DNS và syslog sử dụng UDP.

Các quy tắc chuyển tiếp sẽ xác định loại giao thức và cổng vào Load Balancer để di chuyển đến các giao thức. Cổng Load Balancer lúc này được sử dụng để định tuyến lưu lượng trên backend.

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.

Tổng hợp

Japan IT Works



Việc làm theo chuyên ngành

Việc làm theo ngành

Việc làm theo tỉnh thành