Thuật ngữ Loadbalancing (cân bằng tải) với các anh chị em coder thì không còn xa lạ gì nữa. Với những ai chưa biết thì chúng ta có thể google hoặc vào đây để đọc nhé. Ý tưởng của kỹ thuật loadbalancing các bạn có thể hình dung như sau :
Hãy tưởng tượng bạn đang ung dung phóng xe trên đường đến ga tàu hỏa thì bất chợt phía xa xa kia có một cái bảng thông báo to đùng rằng nếu bạn đi xe máy thì phải rẽ trái và đi ôto thì rẽ phải. Tất nhiên với 1 đoạn đường xe máy only thì bạn tha hồ vít ga, đánh võng lạng lách để đến nơi nhanh hơn mà không sợ mấy ông oto lấn làn, bấm còi . Đó chính là ý tưởng của kỹ thuật loadbalancing với loadbalancer là cái bảng thông báo to đùng.
Vậy để xây dựng một hệ thống loadbalancing thì đầu tiên chúng ta phải dựng một loadbalancer. Cơ bản thì chúng ta có 2 loại : Loadbalancer "mềm" và loadbalancer "cứng"
Loadbalancer mềm : Xây dựng một loadbalancer thông qua việc cấu hình hệ điều hành hoặc các phần mềm chia tải. Giải pháp này có ưu điểm là chi phí rẻ, nhưng lại mắc các khuyết điểm như: hiệu năng xử lý phân tải , tốc độ xử lý và chuyển tiếp gói tin chậm hơn so với các loadbalancer cứng chuyên dụng.
Một số phần mềm hay sử dụng làm loadbalancer như Nginx, Apache, HAproxy...
Loadbalancer cứng : Sử dụng các thiết bị chuyển mạch ứng dụng chuyên dụng. Đặc điểm của giải pháp này là trang bị các thiết bị phần cứng chuyên dụng với giá thành tương đối cao. Tuy nhiên hiệu năng xử lý và công nghệ áp dụng vượt xa so với phương pháp cân bằng tải bằng phần mềm.
Các hãng sản xuất các thiết bị loadbalancer như Foundry, Nortel (Alteon) hay Cisco CSS (Arrowpoint), Cisco Local Director...
Trong bài viết này, mình sẽ dùng ứng dụng HAproxy (các tính năng của HAproxy các bạn tham khảo tại đây ) được cài đặt trên một máy chủ Ubuntu đóng vai trò là một Loadbalancer. Mô hình triển khai như sau :
– Load Balancer
Hostname: haproxy
OS: Ubuntu + haproxy
Private IP: 192.168.158.133
– Web Server 1
Hostname: webser01
OS: Ubuntu + Apahce2
Private IP: 192.168.158.134
– Web Server 2
Hostname: webserver02
OS: Ubuntu + Apache2
Private IP: 192.168.158.135
Bước 1 : Cài đặt và cấu hình 2 con web server.
Cài đặt ubuntu và apache2 trên cả 2 con webserver:
sudo apt-get update
sudo apt-get install apache2
Trên mỗi con webserver, chúng ta sẽ tạo một trang index.html mới như sau :
Webserver 01
sudo sh -c "web1 >> /var/www/index.html"
Webserver 02
sudo sh -c "web2 >> /var/www/index.html"
Sau khi chuẩn bị xong 2 con webserver, chúng ta sang bước kế tiếp.
Bước 2: Cài đặt và cấu hình HAproxy.
sudo apt-get update
sudo apt-get install haproxy
Dùng lệnh haproxy -v
để xem kết quả.
Đã xong các bước chuẩn bi, chúng ta sang bước quan trọng nhất là cấu hình HAproxy.
Bước 3 : Cấu hình HAproxy.
File cấu hình là file haproxy.cfg
lưu ở /etc/haproxy/
. Trước khi tác động đến nó các bạn có thể lưu backup để dành tham khảo nhé. Bây giờ mở nó lên nào.
sudo nano /etc/haproxy/haproxy.cfg
Sau khi đã xóa trắng file, với mục đích chỉ config loadbalancer đơn giản cho 2 webserver, mình sẽ điền như sau :
global
daemon
maxconn 256
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in
bind *:80
default_backend servers
backend servers
balance roundrobin
server webserver1 192.168.158.134:80 check
server webserver2 192.168.158.135:80 check
Cấu hình trên là cấu hình basic cho một loadbalancer, bạn chỉ cần quan tâm đến phần
backend servers
balance roundrobin
server webserver1 192.168.158.134:80 check
server webserver2 192.168.158.135:80 check
Nếu có nhiều node apache server, các bạn chỉ cần khai báo thêm vào là được. Lưu ý với khai báo balance roundrobin
, các bạn có thể thay đổi thuật toán loadbalancing nếu thích. (tham khảo thêm tại đây )
Save lại và sudo service haproxy start
. Thế là đã xong một mô hình loadbalancing đơn giản với HAproxy. Bạn có thể truy cập vào IP của loadbalancer và xem kết quả.
Sau khi F5 :
Bonus thêm tính năng monitor thông qua web GUI của HAproxy
Thêm vào file cấu hình phần defaults
như sau :
defaults
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats enable
stats uri /monitor
stats auth root:123456
Lưu ý : 2 khai báo stats uri /
và stats auth
các bạn điền tham số tùy ý nhé. Ở đây mình đặt tên trang monitor là monitor
với user/pass dùng login là root:123456
Truy cập vào thử nào, của mình là 192.168.158.133/monitor
Kết luận
HAproxy là một công cụ rất mạnh, cung cấp rất nhiều tính năng để xây dựng nên một hệ thống loadbalancing tốt. Cách sử dụng basic khá đơn giản, dễ tìm hiểu nhưng nếu để hoàn thiện nó thì cũng khá là khoai ^^ . Các bạn có thể tham khảo đầy đủ các tính năng của nó tại http://www.haproxy.org/
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
LoadBalancing Webserver đơn giản với HAproxy trên Ubuntu server, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty