Throttling merupakan salah satu metode paling umum untuk pengendalian traffic. Fitur ini melindungi layanan backend agar tidak kewalahan oleh volume permintaan yang melebihi kapasitasnya, sehingga mencegah kegagalan berantai. Dalam skenario konkurensi tinggi, throttling memastikan ketersediaan layanan dengan menolak sebagian permintaan. Gateway cloud-native mendukung kebijakan throttling tingkat rute untuk mengontrol traffic secara tepat pada rute tertentu, memastikan jumlah permintaan tidak melebihi ambang batas dalam periode tertentu. Topik ini menjelaskan cara mengonfigurasi kebijakan throttling untuk gateway cloud-native.
Fitur throttling di Konsol MSE telah ditingkatkan dengan mode-mode baru yang hanya tersedia untuk versi gateway 1.1.0 dan yang lebih baru. Fitur throttling lama tetap tersedia. Pilih prosedur yang sesuai dengan versi gateway Anda.
-
Jika versi gateway Anda adalah 1.1.0 atau yang lebih baru, lihat bagian Konfigurasikan kebijakan throttling (baru).
-
Jika versi gateway Anda adalah 1.0.0, lihat bagian Konfigurasikan kebijakan throttling (lama).
Konfigurasikan kebijakan throttling (baru)
Ambang batas yang Anda konfigurasikan merupakan total untuk seluruh gateway. Ambang batas throttling untuk setiap node gateway dihitung sebagai berikut: Ambang Batas Total / Jumlah Node. Jika hasilnya desimal, nilai tersebut dibulatkan ke atas ke bilangan bulat terdekat. Misalnya, jika ambang batas QPS total untuk rute Demo adalah 1001 dan gateway Anda memiliki dua node, batas QPS untuk rute Demo pada setiap node gateway adalah 501.
-
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
-
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik ID gateway.
-
Di panel navigasi kiri, klik Routes. Lalu, klik tab Routes.
-
Temukan rute yang ingin Anda kelola dan klik Policies di kolom Actions.
-
Di tab Policies, klik Throttling.
Untuk versi gateway 1.2.25 dan yang lebih baru
-
Throttling rules
Throttling rules memantau queries per second (QPS) suatu rute. Ketika QPS mencapai ambang batas yang dikonfigurasi, gateway segera mengintersepsi traffic. Hal ini melindungi layanan backend dari lonjakan traffic mendadak dan memastikan ketersediaan tinggi.
-
Di bagian Throttling, klik tab throttling rules.
-
Di bagian Throttling Rules, konfigurasikan parameter berikut.
Parameter
Deskripsi
Gateway QPS threshold
Queries per second (QPS) maksimum untuk seluruh gateway.
Web fallback behavior
Aksi yang dilakukan ketika permintaan dibatasi. Opsi termasuk Return Specified Content dan Go to Specified Page.
Jika Anda mengatur Web Fallback Behavior ke Go to Specified Page:
Redirect URL
URL tempat permintaan yang dibatasi dialihkan.
Jika Anda mengatur Web Fallback Behavior ke Return Specified Content:
HTTP status code
Kode status HTTP yang dikembalikan. Nilai default adalah 429.
Returned content type
Tipe konten respons. Opsi: Plain Text dan JSON.
HTTP response body
Badan respons kustom yang dikembalikan.
Enable
Mengaktifkan aturan saat diaktifkan.
-
Klik New atau Save, lalu klik OK di kotak dialog konfirmasi.
-
-
Concurrency rules
Concurrency rules memantau jumlah total permintaan yang sedang diproses oleh gateway. Ketika jumlah permintaan konkuren mencapai ambang batas yang dikonfigurasi, gateway segera mengintersepsi traffic baru. Anda dapat mengatur nilai ini sesuai dengan kapasitas pemrosesan konkuren maksimum layanan backend untuk memastikan ketersediaannya dalam kondisi konkurensi tinggi.
-
Di bagian Throttling, klik tab concurrency rules.
-
Di tab concurrency rules, konfigurasikan parameter berikut.
Parameter
Deskripsi
Gateway concurrency threshold
Jumlah maksimum permintaan konkuren untuk seluruh gateway.
Web fallback behavior
Aksi yang dilakukan ketika permintaan dibatasi. Opsi termasuk Return Specified Content dan Go to Specified Page.
Jika Anda mengatur Web Fallback Behavior ke Go to Specified Page:
Redirect URL
URL tempat permintaan yang dibatasi dialihkan.
Jika Anda mengatur Web Fallback Behavior ke Return Specified Content:
HTTP status code
Kode status HTTP yang dikembalikan. Nilai default adalah 429.
Returned content type
Tipe konten respons. Opsi: Plain Text dan JSON.
HTTP response body
Badan respons kustom yang dikembalikan.
Enable
Mengaktifkan aturan saat diaktifkan.
-
Klik New atau Save, lalu klik OK di kotak dialog konfirmasi.
-
-
Circuit breaking rules
Circuit breaking rules memantau waktu respons atau rasio error suatu rute. Ketika ambang batas tertentu tercapai, pemutus sirkuit aktif dan menghentikan pemanggilan resource yang tidak stabil selama periode tertentu untuk melindungi layanan backend dan memastikan ketersediaan tinggi. Setelah periode tersebut berakhir, pemanggilan ke resource dilanjutkan.
-
Di bagian throttling, klik tab Fuse rule.
-
Di tab Fuse rule, konfigurasikan parameter berikut.
Parameter
Deskripsi
Statistical window duration
Durasi jendela waktu untuk mengumpulkan statistik. Nilai valid: 1 detik hingga 120 menit.
Minimum requests
Jumlah minimum permintaan yang diperlukan untuk memicu pemutusan sirkuit. Jika jumlah permintaan dalam jendela waktu saat ini kurang dari nilai ini, aturan tidak dipicu meskipun ambang batas tercapai.
Threshold type
Pilih Slow Call Ratio atau Error Ratio sebagai ambang batas.
-
Jika Anda memilih slow call ratio sebagai ambang batas, Anda harus mengatur slow call RT (waktu respons maksimum) yang diizinkan. Permintaan dihitung sebagai slow call jika waktu responsnya lebih besar dari nilai ini. Anda juga harus mengatur rasio slow call yang memicu pemutusan sirkuit. Setelah aturan diaktifkan, jika jumlah permintaan dalam jendela waktu statistik lebih besar dari jumlah minimum permintaan dan rasio slow call melebihi ambang batas, permintaan secara otomatis diblokir selama periode pemutusan sirkuit berikutnya. Setelah periode pemutusan sirkuit berakhir, pemutus sirkuit memasuki keadaan half-open. Jika waktu respons permintaan tunggal berikutnya kurang dari slow call RT yang dikonfigurasi, pemutusan sirkuit berakhir. Jika waktu respons lebih besar dari slow call RT yang dikonfigurasi, sirkuit diputus lagi.
-
Jika Anda memilih Error Ratio, Anda harus mengatur ambang batas untuk rasio error. Saat aturan diaktifkan, jika jumlah permintaan dalam jendela waktu melebihi jumlah minimum permintaan dan rasio error melebihi ambang batas, pemutus sirkuit aktif. Selama periode pemutusan sirkuit berikutnya, semua permintaan gagal secara cepat (fail fast).
Circuit breaking period (s)
Durasi sirkuit tetap terbuka setelah diputus. Selama periode ini, semua pemanggilan ke resource gagal secara cepat.
Web fallback behavior
Aksi yang dilakukan ketika permintaan dibatasi. Opsi termasuk Return Specified Content dan Go to Specified Page.
Jika Anda mengatur Web Fallback Behavior ke Go to Specified Page:
Redirect URL
URL tempat permintaan yang dibatasi dialihkan.
Jika Anda mengatur Web Fallback Behavior ke Return Specified Content:
HTTP status code
Kode status HTTP yang dikembalikan. Nilai default adalah 429.
Returned content type
Tipe konten respons. Opsi: Plain Text dan JSON.
HTTP response body
Badan respons kustom yang dikembalikan.
Enable
Mengaktifkan aturan saat diaktifkan.
-
-
Klik New atau Save, lalu klik OK di kotak dialog konfirmasi.
-
Untuk versi gateway 1.1.0 hingga 1.2.24
-
Throttling rule
Throttling rules memantau queries per second (QPS) suatu rute. Ketika QPS mencapai ambang batas yang dikonfigurasi, gateway segera mengintersepsi traffic. Hal ini mencegah layanan backend kewalahan oleh lonjakan traffic mendadak dan memastikan ketersediaan tinggi.
-
Di panel Throttling, klik tab Throttling Rules, lalu klik Add Throttling Rule.
-
Di halaman Add Throttling Rule, konfigurasikan pengaturan.
-
Pada langkah Configure Rule, atur gateway QPS threshold sesuai kebutuhan dan aktifkan sakelar Enable. Lalu, klik Next.
-
Pada langkah Configure Throttling Behavior, Anda dapat mengklik New behavior untuk menyesuaikan respons HTTP saat throttling dipicu.
-
-
Setelah mengonfigurasi perilaku throttling, klik New untuk membuat aturan.
-
-
Concurrency rule
Concurrency rules memantau jumlah total permintaan yang sedang diproses oleh gateway. Ketika jumlah permintaan konkuren mencapai ambang batas yang dikonfigurasi, gateway segera mengintersepsi traffic baru. Anda dapat mengatur nilai ini sesuai dengan kapasitas pemrosesan konkuren maksimum layanan backend untuk memastikan ketersediaannya dalam kondisi konkurensi tinggi.
-
Di panel Throttling, klik tab concurrency rules, lalu klik Add Concurrency Rule.
-
Di halaman Add Concurrency Rule, konfigurasikan pengaturan.
-
Pada langkah Configure Rule, atur gateway concurrency threshold sesuai kebutuhan dan aktifkan sakelar Enable. Lalu, klik Next.
-
Pada langkah Configure Throttling Behavior, Anda dapat mengklik Add Behavior untuk menyesuaikan respons HTTP saat throttling dipicu.
-
-
Setelah mengonfigurasi perilaku throttling, klik New untuk membuat aturan.
-
-
Circuit breaking rule
Circuit breaking rules memantau waktu respons atau rasio error suatu rute. Ketika ambang batas tertentu tercapai, pemutus sirkuit aktif dan menghentikan pemanggilan resource yang tidak stabil selama periode tertentu untuk melindungi layanan backend dan memastikan ketersediaan tinggi. Setelah periode tersebut berakhir, pemanggilan ke resource dilanjutkan.
-
Di panel throttling, klik tab Fuse rule, lalu klik Added fusing rule.
-
Di halaman Add Circuit Breaking Rule, konfigurasikan pengaturan.
-
Pada langkah Configure Rule, atur parameter sesuai kebutuhan dan aktifkan sakelar Enable. Lalu, klik Next.
Parameter
Deskripsi
Statistical window duration
Durasi jendela waktu untuk mengumpulkan statistik. Nilai valid: 1 detik hingga 120 menit.
Minimum requests
Jumlah minimum permintaan yang diperlukan untuk memicu pemutusan sirkuit. Jika jumlah permintaan dalam jendela waktu saat ini kurang dari nilai ini, aturan tidak dipicu meskipun ambang batas tercapai.
Threshold type
Pilih Slow Call Ratio atau Error Ratio sebagai ambang batas.
-
Jika Anda memilih rasio slow call sebagai ambang batas, Anda harus mengatur Response Time (RT) slow call yang diizinkan. Permintaan dihitung sebagai slow call jika waktu responsnya lebih besar dari nilai ini. Anda juga harus mengatur rasio slow call yang akan memicu pemutusan sirkuit. Setelah aturan diaktifkan, jika jumlah permintaan dalam jendela waktu statistik lebih besar dari jumlah minimum permintaan dan rasio slow call melebihi ambang batas yang ditentukan, permintaan berikutnya secara otomatis diblokir selama periode pemutusan sirkuit yang ditentukan. Setelah periode pemutusan sirkuit berakhir, pemutus sirkuit memasuki keadaan half-open. Jika waktu respons permintaan tunggal berikutnya kurang dari RT slow call yang dikonfigurasi, pemutusan sirkuit berakhir. Jika waktu respons lebih besar dari RT slow call, sirkuit diputus lagi.
-
Jika Anda memilih Error Ratio, Anda harus mengatur ambang batas untuk rasio error. Saat aturan diaktifkan, jika jumlah permintaan dalam jendela waktu melebihi jumlah minimum permintaan dan rasio error melebihi ambang batas, pemutus sirkuit aktif. Selama periode pemutusan sirkuit berikutnya, semua permintaan gagal secara cepat (fail fast).
Circuit breaking period
Durasi sirkuit tetap terbuka setelah diputus. Selama periode ini, semua pemanggilan ke resource gagal secara cepat.
Circuit Breaking Recovery Strategy
Strategi pemulihan pemutus sirkuit saat memasuki keadaan half-open.
Pemulihan probe tunggal: Setelah periode pemutusan sirkuit, pemutus sirkuit mengizinkan satu permintaan untuk melewati pengujian. Jika permintaan berhasil (bukan slow call atau error), sirkuit ditutup. Jika tidak, sirkuit diputus lagi.
-
-
Pada langkah Configure Throttling Behavior, Anda dapat mengklik Add Behavior untuk menyesuaikan respons HTTP saat throttling dipicu.
-
-
Setelah mengonfigurasi perilaku throttling, klik New untuk membuat aturan.
-
-
Konfigurasikan kebijakan throttling (lama)
-
Masuk ke Konsol MSE.
-
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di bilah navigasi atas, pilih wilayah.
-
Di halaman Gateways, klik ID gateway.
-
Di panel navigasi kiri, klik routes > Route Settings. Temukan rute yang ingin Anda kelola dan klik policies di kolom Actions.
-
Di bagian Policies, klik tab throttling.
-
Jika Anda belum mengonfigurasi kebijakan throttling untuk rute tersebut, klik Configure policy.
-
Jika kebijakan throttling sudah dikonfigurasi, klik ikon edit (
) di samping kebijakan tersebut.
-
-
Pada aturan throttling threshold, atur Time Window dan single-machine request threshold, lalu klik OK.
Berikut penjelasan parameter throttling.
-
Time window: Periode waktu pengukuran ambang batas permintaan. Default-nya adalah 1 detik.
-
Single-machine request threshold: Jumlah maksimum permintaan yang diizinkan untuk satu node gateway dalam jendela waktu yang ditentukan.
-
-
Setelah aturan throttling dikonfigurasi, aktifkan sakelar Enable.
-
Diaktifkan: Saat kebijakan throttling diaktifkan, permintaan untuk rute ini dibatasi berdasarkan jendela waktu dan ambang batas permintaan yang dikonfigurasi.
-
Dimatikan: Saat kebijakan throttling dimatikan, jumlah permintaan untuk rute ini tidak dibatasi.
-
Verifikasi hasil
Jalankan perintah berikut untuk mengirim permintaan uji:
curl -I http://121.196.XX.XX/demo/item/list # Alamat IP gerbang masuk
-
Respons saat kebijakan throttling dimatikan:
HTTP/1.1 200 OK x-content-type-options: nosniff x-xss-protection: 1; mode=block cache-control: no-cache, no-store, max-age=0, must-revalidate pragma: no-cache expires: 0 x-frame-options: DENY content-type: application/json content-length: 86 date: Mon, 29 Nov 2021 08:28:00 GMT x-envoy-upstream-service-time: 4 server: istio-envoy -
Respons saat kebijakan throttling diaktifkan dan dipicu (kode status HTTP 429 dikembalikan):
HTTP/1.1 429 Too Many Requests x-local-rate-limit: true content-length: 18 content-type: text/plain date: Mon, 29 Nov 2021 08:28:01 GMT server: istio-envoy