Thursday, September 11, 2008

Aplikasi load-balancer

Saat ini saya butuh aplikasi load-balancer yang akan digunakan oleh aplikasi saat melakukan koneksi ke sebuah system yang terdiri dari beberapa back-end server. Terpikir untuk menggunakan aplikasi load-balancer gratisan tapi setelah dipikir lagi mungkin gak bisa karena load-balancer yang saya perlukan adalah load-balancer yang harus melakukan pendistribusian berdasarkan sebuah grup transaksi (beberapa request). Beberapa request yang akan dilakukan adalah:
  1. Login
  2. Do-something-A
  3. Do-something-B
  4. Do-something-C
  5. Logout
ketiga request diatas harus selalu dikirimkan ke server yang sama. Hal ini diperlukan karena server-server yang menjadi tujuan tidak merupakan satu cluster sehingga session login yang dilakukan di server A tidak tereplikasi di server lainnya.

Jadi metode load-balancing yang saya perlukan adalah sticky load-balancing berdasarkan group transaction. Sticky berarti menempel. Beberapa transaksi yang saling berkaitan harus menempel (dikirimkan) pada server yang sama.

Sticky load-balancing adalah hal yang biasa dilakukan apalagi pada load-balancing trafik HTTP dan pengelompokan tujuan biasanya didasarkan pada:
  • Alamat IP pengirim
  • Session pengguna/cookies yang informasinya biasa terdapat pada HTTP header
  • Bagian (parameter) yang ada di request URL
Jadi yang saya butuhkan bukanlah load-balancing sederhana dengan algoritma round-robin.

Sejak beberapa tahun lalu saya sudah menggunakan pound sebagai load-balancer dan reverse-proxy. Aplikasi ini gratis, mudah instalasinya, mudah dikonfigurasi tapi cocok untuk implementasi load-balancer HTTP/HTTPS.

Jika anda menginginkan load balancer yang melakukan pembagian pada layer TCP maka beberapa alternatif ini bisa digunakan:
Untuk kebutuhan saya diatas sepertinya tidak bisa menggunakan aplikasi gratis tersebut, jadi saya berencana untuk meng-enhance apalikasi saja supaya melakukan load-balancingnya sendiri.

Catatan tambahan (2010/02/28):
Beberapa aplikasi load balancer yang mendukung sticky load balancing
  • HAproxy, dapat melakukan sticky load balancing berdasarkan cookie misalnya JSESSIONID, lihat dokumentasinya disini.
  • NGINX, lihat dokumentasinya disini
  • Crossroad

2 comments:

Ilmi Aji said...

sepertinya Anda cadass banget -kagum- belajar dimana ya? ilmu saya masih cupu

Ilmugratisgan said...

Nice article

Followers