HAProxy sebagai load balancer MYSQL
Pada artikel sebelumnya, saya sudah membahas tentang replikasi Master-Master Mysql. Sekarang saya akan coba membuat load balancer untuk akses kedua server mysql tersebut melalui satu pintu menggunakan HaProxy. Konfigurasi yang akan saya buat seperti berikut:
Dari Gambar diatas saya bermaksud membuat cluster database, yang dapat digunakan sebagai load balancer(pembagi beban) antara server DB1 dan DB2. Dengan menggunakan HaProxy, maka webserver aplikasi yang akan mengakses database 1 dan 2 tidak direct (langsung) terhubung ke server DB1 dan DB2. Webserver aplikasi cukup melakukan komunikasi melalui server HaProxy terkoneksi ke ip 192.168.2.1/24.
1. Pastikan terlebih dahulu bahwa server DB1 & DB2 sudah berfungsi fitur replikasinya.
2. Install haproxy melalui port, dalam hal ini saya menggunakan freebsd 10 sebagai OS nya.
# cd /usr/ports/net/haproxy # make install clean
3. Buat konfigurasi file di /usr/local/etc/haproxy.conf seperti berikut:
# ee /usr/local/etc/haproxy.conf
global log 127.0.0.1 local0 notice maxconn 4096 user haproxy group haproxy daemon defaults log global retries 2 timeout connect 3000 timeout server 5000 timeout client 5000 frontend MYSQL-CLUSTER-IN bind 192.168.2.1:3306 bind 127.0.0.1:3306 default_backend MYSQL-CLUSTER-OUT backend MYSQL-CLUSTER-OUT mode tcp option mysql-check user haproxy_cek balance roundrobin server mysql-1 10.10.10.11:3306 check server mysql-2 10.10.10.12:3306 check
4. Buat user “haproxy”.
# pw useradd haproxy
5. Buat user “haproxy_cek” melalui mysql console di salah satu server bisa DB1 atau DB2. Sesuaikan dengan ip internal HaProxy anda.
mysql> create user 'haproxy_cek'@'10.10.10.10'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
6. Coba sekarang running dengan perintah:
# /usr/loca/etc/rc.d/haproxy onestart
7. Silahkan dicek service haproxy sudah listen di port 3306.
# netstat -an | grep 3306
8. Tambahkan baris berikut di konfigurasi haproxy.conf agar bisa digunakan untuk monitor statistik session/request yang masuk dari frontend haproxy.
listen statistik bind 192.168.2.1:8080 mode http option httpclose stats enable stats uri / stats refresh 3s stats realm Haproxy\ Statistics stats auth namauser:passworduser
9. Restart service haproxy, kemudian akses ke http://192.168.2.1:8080 masuk dgn user dan password anda.
10. Terakhir tambahkan baris berikut di /etc/rc.conf agara service haproxy bisa autostart.
haproxy_enable="YES"
Tidak hanya untuk load balancer mysql yang listen diport 3306. Akan tetapi haproxy bisa juga dipakai untuk keperluan balancing lain misal port 80/http. Jadi haproxy bisa berfungsi sebagai front end webserver.
Semoga bermanfaat….
sumber:
https://www.digitalocean.com/community/tutorials/how-to-use-haproxy-to-set-up-mysql-load-balancing–3
Saya mau bertanya,
untuk menguji kemampuan haproxynya menggunakan apa ya?
kemampuan apanya ya? haproxy hanya aplikasi yang meneruskan packet ke backend.
Kemaren saya mau uji performansi dari server database yang diloadbalancing. Cuman tidak ketemu tools pengujinya. Dan mohon maaf juga pertanyaannya sebelumnya tidak jelas.