Saturday, March 17, 2018

LoadBalancing Percona-MySQL with HAproxy and ClusterCheck

         Untuk postingan kali ini saya akan membahas tentang bagaimana cara loadbalancing 3 nodes Percona-xtradb MySQL cluster dengan menggunakan haproxy dan clustercheck. Untuk lebih mengenal apa itu percona-xtradb dapat mengunjungi halaman dokumentasi resminya di percona-xtradb official. Untuk loadbalancing ketiga nodes ini kita membutuhkan clustercheck, xinetd dan HAproxy. 


Kita akan bahas satu persatu, clustercheck adalah shell script yang akan check status node percona-mysql apakah ready to accept request. Jika ready, clustercheck akan respon HTTP code 200 (OK), jika tidak HTTP error 503 (Service Unavailable) akan dikirim. Xinetd (xtended Internet daemon) adalah opensource daemon yang dapat membuka koneksi untuk request pada jaringan dengan menyediakan sebuah service. Xinetd akan kita gunakan untuk membuka service pada port 9200 yang akan digunakan clustercheck untuk report status node percona-mysql. Haproxy yang menjadi balancer akan check ke port 9200 yang telah disediakan oleh xinetd pada setiap node untuk menentukan apakah node tersebut dapat digunakan.

Prerequisites :
- Centos 7 64bit
- Git installed
- Percona-XtraDB cluster sudah di setup dan sync di ketiga nodes.

Next kita masuk ke konfigurasi, lakukan step berikut di ketiga node :

  • Install xinetd

  • Add user untuk clustercheck

  • Clone repository clustercheck dan copy clustercheck file ke /usr/bin

  • Create file mysqlchk ke /etc/xinetd.d

  • Add service mysqlchk ke /etc/services

  • Verifikasi konfigurasi, bila return = 0, node tersebut sudah sync 

  • Restart service xinet.d, jika sudah maka di setiap node akan listen di port 9200/xinetd
  • Setelah semua step diatas selesai dilakukan di setiap node, kita beralih ke haproxy.
  • Konfigurasi /etc/haproxy/haproxy.cfg dan sesuaikan hostname setiap node


Selesai, 3 node percona-mysql tersebut akan di loadbalancing oleh HAproxy yang akan melakukan check melalui port 9200. Dari sisi aplikasi, endpoint yang digunakan untuk menembak percona-mysql adalah ip dan port yang di set pada HAproxy. Selamat mencoba guys.

Referensi :

No comments:

Post a Comment