Routing Methods
3 min read
Apa itu Round Robin, Sticky Session, dan Failover #
A. Round Robin adalah metode routing paling umum, paling sederhana, dan juga paling sering digunakan dalam Traffic Distributor. Metode ini mengarahkan permintaan (request) ke backend secara bergiliran sesuai dengan bobot (weight) server yang telah ditentukan.
📝 NOTE
Metode ini sebaiknya dipilih hanya jika semua backend kamu memiliki konten yang identik, karena data yang diminta oleh pengguna bisa diambil dari salah satu backend secara bergiliran. Kalau isi antar server berbeda, pengguna bisa mendapatkan hasil yang tidak konsisten.

Jadi, setiap backend akan diakses berdasarkan level prioritas yang sudah ditentukan sebelumnya, yang dalam penggunaan Traffic Distributor diatur dalam bentuk persentase dari total permintaan masuk. Contohnya:
1. Jika bobot (weight) sama, misalnya 50% – 50%, maka setiap permintaan berikutnya akan diarahkan ke server yang berbeda secara bergantian. Hasilnya, pemakaian resource jadi merata dan distribusi trafik seimbang.
2. Jika persentasenya 70% ke 30%, maka dari setiap 10 permintaan yang masuk, 7 akan dikirim ke environment yang pertama dan 3 lainnya ke environment kedua. Ini berguna jika Kamu ingin salah satu backend lebih sering atau lebih jarang merespons permintaan (misalnya untuk mengatur beban server).
3. Kalau Kamu mengatur 100% ke satu server, hanya backend itu yang akan dipakai dan memproses semua permintaan masuk. Ini cocok digunakan saat Kamu ingin melakukan update aplikasi secara diam-diam (tanpa mengganggu pengguna), atau saat migrasi ke hardware baru tanpa downtime.
B. Sticky Sessions digunakan untuk mencapai server-affinity, yaitu “menempelkan” pengguna ke satu backend tertentu, sehingga pengguna hanya bekerja dengan satu versi aplikasi saja. Pada kunjungan pertama, pengguna diarahkan ke backend berdasarkan bobot server (weight) yang sudah ditentukan. Setelah itu, backend yang dipilih akan diingat, sehingga semua permintaan berikutnya dari pengguna tersebut akan selalu diarahkan ke lingkungan yang sama.
Biasanya, teknik ini dilakukan dengan mengingat alamat IP pengguna. Tapi pendekatan ini kurang optimal, karena bisa saja ada banyak pengguna yang berada di balik satu proxy (misalnya di jaringan kantor atau kampus), yang membuat distribusi beban tidak merata.
Sebagai gantinya, platform ini memakai metode yang lebih canggih, yakni menggunakan session cookies untuk routing yang bersifat tetap (persistent). Jadi, setiap browser dianggap sebagai satu “user” unik, dan ini membuat proses balancing jadi lebih adil dan merata.

Dengan cara ini, distribusi pengguna baru pada metode Sticky Sessions mirip dengan metode Round Robin, yaitu diarahkan berdasarkan prioritas (weight) yang telah ditentukan sebelumnya. Sebagai contoh, jika kamu mengatur rasio 50% : 50%, maka kedua versi aplikasi akan dikunjungi oleh jumlah pengguna unik yang relatif seimbang — ini sangat berguna untuk skenario A/B Testing. Namun, terlepas dari rasio server yang sudah diatur, permintaan dari pengguna lama akan selalu diarahkan ke backend yang sebelumnya sudah mereka gunakan. Hal ini akan terus berlangsung sampai sesi pengguna berakhir atau cookie mereka dihapus dari browser.
C. Failover adalah metode routing khusus yang digunakan untuk melindungi proyek dengan cara menyimpan salinan lingkungan (environment) yang sepenuhnya berfungsi sebagai cadangan. Singkatnya, Kamu akan memiliki dua server:
- Primary server (utama) : semua permintaan (requests) akan diarahkan ke server ini secara default.
- Backup server (cadangan) : server ini dalam mode siaga dan hanya akan digunakan jika server utama mengalami gangguan atau tidak dapat merespons.

Untuk jenis distribusi Failover ini, Kamu tidak bisa mengatur rasio distribusi traffic seperti pada metode lainnya. Artinya, Kamu hanya dapat memilih server mana yang akan menjadi utama (primary) dan mana yang menjadi cadangan (backup). Dengan pengaturan ini, semua permintaan (request) hanya akan diarahkan ke satu server dalam satu waktu—yaitu ke server utama. Jika server utama tidak tersedia atau mengalami kegagalan, maka seluruh traffic akan otomatis dialihkan ke server cadangan.
Secara umum, pengalihan ini terjadi secara otomatis, sehingga meskipun terjadi masalah pada server utama, pengguna tidak akan menyadari adanya gangguan pada aplikasi.
Powered by BetterDocs
