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:
- Login
- Do-something-A
- Do-something-B
- Do-something-C
- 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:
sepertinya Anda cadass banget -kagum- belajar dimana ya? ilmu saya masih cupu
Nice article
Post a Comment