Cân bằng tải (LOAD BALANCING) tối ưu tốc độ xử lý (4 layer).



Nguyễn Hoàng Khôi / 17-08-2018

Cân bằng tải giúp cho server xử lý được số lượng request lớn.

Theo như các đi thông thường thì request từ client đi trực tiếp tới một web server duy nhất, điều này có thể gây nghẽn server, tốc độ xử lý chậm.

 

 

Cân bằng tải sẽ dựa vào thuật toán tuỳ theo nhu cầu để điều khiển vô các web server khác.

 

 

Có 3 loại thuật toán cân bằng tải:

  • Round robin : phương thức này lựa chọn server theo tuần tự. Bộ cân bằng tải sẽ chọn server đầu tiên trong danh sách của mình cho yêu cầu đầu tiên, sau đó di chuyển xuống server tiếp theo trong danh sách theo thứ tự và bắt đầu lại từ đầu khi hết danh sách.
  • Least connection : hệ thống cân bằng tải sẽ chọn server có ít kết nối nhất và cách này được khuyên dùng khi tốc độ truy cập bị chậm.
  • Source : với thuật toán Source, bộ cân bằng tải sẽ chọn server dựa trên một chuỗi các IP gốc của yêu cầu, chẳng hạn như IP của người truy cập. Phương thức này đảm bảo một người dùng cụ thể sẽ luôn kết nối với cùng một server.

 

Cân bằng tải gồm 2 loại:

  • Cứng :Sử dụng phần cứng để điều khiển request. Các thiết bị như: Foundry, Nortel (Alteon) hay Cisco CSS (Arrowpoint), Cisco Local Director…
  • Mềm : Sử dụng phần mêm để điều khiên request. Các phần mềm như: Nginx, Haproxy, Apache ….

 

Cân bằng tải gồm 2 mô hình 4 layer và 7 layer.

Sau đây là cách cài đăt Cân bằng tải mềm 4 layer và dùng Haproxy:

 

 

  • Load Balancer
    OS: CentOS 7 + haproxy
    Private IP: 192.168.1.129:80
  • Web Server 1
    OS: CentOS 7 + Nginx
    Private IP: 192.168.129:8080
  • Web Server 2
    OS: CentOS 6+ Nginx
    Private IP: 192.168.128:80

Load balancer Web Server 1 hãy mở port 80,8080. Ở Web Server 2 hãy mở port 80. Web Server 1 sẽ có nội dung là “a”. Web Server 2 sẽ có nội dung là “b”.

Cài đặt Haproxy trên Load Balancer

sudo yum install haproxy

Sau đó sửa file /etc/haproxy/haproxy.cfg. Nên tạo backup file này.

global
 daemon
 maxconn 256

defaults
 mode http
 timeout connect 5000ms
 timeout client 50000ms
 timeout server 50000ms

 stats enable
 stats hide-version
 stats refresh 30s
 stats show-node
 stats auth admin:123456
 stats uri /haproxy?stats

frontend http-in
 bind *:80
 default_backend servers

backend servers
 balance roundrobin
 server webserver1 192.168.1.128:80 check
 server webserver2 192.168.1.129:8080 check

 

Chạy lệnh sudo service haproxy start

Gõ vào url 192.168.1.129 ta sẽ thấy nội dung luân phiên thay đổi là “a” và “b”.

Để xem thông tin về các web server ta truy cập 192.168.1.129/haproxy?stats với tài khoản là admin/123456

 


to-top