Consistent-Hashing dan Slots di Kong API Gateway
Kong API Gateway adalah sebuah sistem yang digunakan untuk mengatur traffic masuk ke aplikasi berbasis internet. Dalam artikel ini, kita akan membahas tentang dua konsep yang penting dalam mengatur traffic: consistent-hashing dan slots.
Consistent-Hashing
Consistent-hashing adalah algoritma yang digunakan untuk menyeimbangkan traffic masuk ke beberapa backend. Algoritma ini bekerja dengan cara menghash data input menjadi sebuah nilai yang unik, lalu membandingkannya dengan hash nilai-nilai lainnya. Dengan demikian, traffic masuk akan diarahkan ke backend yang memiliki hash nilai yang paling dekat.
Alasan menggunakan consistent-hashing adalah karena algoritma ini dapat meningkatkan cache-hit ratio, namun perlu diperhatikan bahwa algoritma ini memerlukan enough cardinality dalam input data. Jika input data tidak memiliki enough cardinality, maka algoritma ini tidak akan efektif.
Slots di Kong API Gateway
Slots adalah sebuah konsep yang digunakan oleh Kong API Gateway untuk menyeimbangkan traffic masuk ke beberapa backend. Dalam Kong API Gateway, setiap upstream server dapat memiliki lebih dari satu target, dan slots adalah tempat-tempat yang digunakan untuk membandingkan target-target tersebut.
Setiap slot memiliki weight yang digunakan untuk menghitung ketersediaan sumber daya di backend. Dengan demikian, traffic masuk akan diarahkan ke backend yang memiliki ketersediaan sumber daya paling banyak.
Definisi Amount of Slots
Kong API Gateway oleh default menggunakan 10.000 slots dalam sebuah upstream. Jika Anda ingin mengubah jumlah slot, Anda dapat melakukannya dengan cara mengedit konfigurasi upstream.
Dalam kasus Anda yang memiliki dua target, Anda tidak perlu menggunakan semua 10.000 slots. Anda dapat mengatur jumlah slot menjadi 2, dan membagi weight antara dua target tersebut. Dengan demikian, Anda dapat mengatur seberapa banyak traffic masuk akan diarahkan ke masing-masing target.
Contoh
Misalkan Anda ingin mengirim 30% dari traffic masuk ke target_b, maka Anda dapat mengatur weight untuk target_b menjadi 0.6. Dalam hal ini, Anda juga perlu mengatur weight untuk target_a menjadi 1 – 0.6 = 0.4.
Dengan demikian, Anda akan memiliki dua slot dengan weight sebagai berikut:
- Slot 1: Target_a (weight = 0.4)
- Slot 2: Target_b (weight = 0.6)
Kesimpulan
Consistent-hashing dan slots adalah dua konsep yang penting dalam mengatur traffic masuk ke beberapa backend di Kong API Gateway. Dengan menggunakan algoritma consistent-hashing, Anda dapat meningkatkan cache-hit ratio, namun perlu diperhatikan bahwa algoritma ini memerlukan enough cardinality dalam input data. Selain itu, slots digunakan untuk menyeimbangkan traffic masuk ke beberapa backend, dan dapat diatur berdasarkan weight masing-masing target.