Pembatasan merupakan salah satu metode yang paling sering digunakan untuk kontrol trafik. Anda dapat menggunakannya untuk mencegah layanan backend kewalahan oleh permintaan eksternal berlebihan. Pembatasan ini mencegah terjadinya avalan bertingkat dan memastikan ketersediaan layanan backend. API Gateway berbasis cloud-native memungkinkan Anda mengonfigurasi kebijakan pembatasan pada tingkat rute. Kebijakan granular ini memastikan jumlah permintaan pada suatu rute tidak melebihi ambang batas tertentu selama periode waktu tertentu. Topik ini menjelaskan cara mengonfigurasi kebijakan pembatasan untuk gateway berbasis cloud-native.
Konfigurasikan kebijakan pembatasan laju
Ambang batas pembatasan yang Anda konfigurasikan adalah ambang batas pembatasan tingkat gateway. Anda dapat menghitung ambang batas pembatasan untuk node gateway menggunakan rumus berikut: Ambang batas pembatasan tingkat gateway / Jumlah node. Jika hasil perhitungan adalah nilai desimal, nilai tersebut dibulatkan ke atas menjadi bilangan bulat terdekat. Sebagai contoh, permintaan per detik (QPS) dari rute demo adalah 1.001. Jika gateway Anda memiliki dua node, batas QPS untuk rute demo pada setiap node gateway adalah 501.
Anda dapat mengonfigurasi kebijakan pembatasan di dalam atau di luar instance API Gateway berbasis cloud-native.
API Eksternal
Masuk ke Konsol API Gateway berbasis cloud-native. Di panel navigasi sebelah kiri, klik API. Di bilah navigasi atas, pilih wilayah.
Klik API yang ingin Anda kelola. Anda dapat memilih instance API Gateway berbasis cloud-native dari daftar drop-down atau memilih All Instances.

Di tab Routes, pilih rute yang ingin Anda kelola.
API Internal
Masuk ke Konsol API Gateway berbasis cloud-native. Di panel navigasi sebelah kiri, klik Instance. Di bilah navigasi atas, pilih wilayah.
Di halaman Instance, klik ID instance API Gateway berbasis cloud-native yang ingin Anda kelola. Di panel navigasi sebelah kiri, klik API. Lalu, klik API yang ingin Anda kelola.
Di tab Routes, pilih rute yang ingin Anda kelola.
Klik tab Policy Configuration. Lalu, klik Enable Policy/Plug-in di kartu Inbound Processing.
Tambahkan kebijakan pembatasan. Anda dapat mengonfigurasi traffic control, concurrency control, atau circuit breaking.
Pembatasan Trafik
Aturan pembatasan digunakan untuk memantau QPS suatu rute. Jika QPS mencapai ambang batas yang ditentukan, trafik langsung diblokir. Ini mencegah kerusakan layanan backend akibat lonjakan trafik dan memastikan ketersediaan tinggi layanan backend.
Klik kartu Traffic Control. Di panel Add Policy: Traffic Control, atur parameter dan klik Add.
Parameter
Deskripsi
Enable or Not
Jika Anda menyalakan saklar ini, kebijakan kontrol trafik mulai berlaku.
Overall QPS Threshold
Masukkan nilai untuk overall QPS threshold.
Web Fallback Behavior
Pilih Return Specific Content atau Redirect to Specified Page untuk Web Fallback Behavior.
Jika Anda memilih Return Specific Content untuk Web Fallback Behavior, Anda perlu mengonfigurasi parameter berikut.
HTTP Status Code
Tentukan HTTP status code yang ingin Anda kembalikan. Nilai default: 429.
Type of Returned Content
Pilih Regular Text atau JSON untuk Type of Returned Content.
HTTP Text
Tentukan teks yang ingin Anda kembalikan.
Jika Anda memilih Redirect to Specified Page untuk Web Fallback Behavior, konfigurasikan parameter berikut ini.
Redirect URL
Tentukan URL to which you want to redirect.
Kontrol konkurensi
Aturan konkurensi digunakan untuk menghitung total jumlah permintaan yang sedang diproses oleh gateway. Jika total jumlah mencapai ambang batas yang ditentukan, trafik langsung diblokir. Saat mengonfigurasi aturan konkurensi, Anda dapat menentukan jumlah maksimum permintaan konkuren yang dapat diproses oleh layanan backend. Ini memastikan ketersediaan layanan backend dalam skenario dengan banyak permintaan konkuren.
Klik kartu Concurrency Control. Di panel Add Policy: Concurrency Control, atur parameter dan klik Add.
Parameter
Deskripsi
Enable or Not
Jika Anda menyalakan saklar ini, aturan konkurensi mulai berlaku.
Overall Concurrency Threshold
Masukkan nilai untuk overall concurrency threshold.
Web Fallback Behavior
Pilih Return Specific Content atau Redirect to Specified Page untuk Web Fallback Behavior.
Jika Anda memilih Return Specific Content untuk Web Fallback Behavior, Anda perlu mengonfigurasi parameter berikut.
HTTP Status Code
Tentukan HTTP status code yang ingin Anda kembalikan. Nilai default: 429.
Type of Returned Content
Pilih Regular Text atau JSON untuk Type of Returned Content.
HTTP Text
Tentukan teks yang ingin Anda kembalikan.
Jika Anda memilih Redirect to Specified Page untuk Web Fallback Behavior, konfigurasikan parameter berikut ini.
Redirect URL
Tentukan URL to which you want to redirect.
Pemutusan sirkuit
Aturan pemutusan sirkuit digunakan untuk menurunkan prioritas dependensi suatu rute secara langsung ketika sistem mendeteksi bahwa waktu respons (RT) permintaan atau persentase permintaan abnormal pada rute mencapai ambang batas tertentu. Jika pemutusan sirkuit dipicu, sistem tidak akan memanggil permintaan pada rute dalam periode waktu tertentu. Ini memastikan ketersediaan tinggi layanan backend. Setelah periode waktu tertentu berakhir, sistem melanjutkan panggilan ke permintaan untuk rute tersebut.
Klik kartu Circuit Breaking. Di panel Add Policy: Circuit Breaking, atur parameter dan klik Add.
Parameter
Deskripsi
Enable or Not
Jika Anda menyalakan saklar ini, aturan pembatasan yang dikonfigurasi mulai berlaku.
Statistical Window Duration
Durasi jendela waktu. Nilai valid: 1 detik hingga 120 menit.
Minimum Number of Requests
Jumlah minimum permintaan untuk memicu pemutusan sirkuit. Jika jumlah permintaan dalam jendela waktu saat ini kurang dari nilai parameter ini, pemutusan sirkuit tidak dipicu meskipun aturan pemutusan sirkuit terpenuhi.
Threshold Type
Tipe ambang batas. Nilai valid: Slow Call Ratio (%) dan Exception Ratio (%).
Jika Anda menyetel parameter ini ke Slow Call Ratio (%), Anda harus mengonfigurasi parameter Slow Call RT, yang menentukan ambang batas untuk RT permintaan. Jika RT permintaan melebihi nilai parameter RT Panggilan Lambat, permintaan tersebut dihitung sebagai panggilan lambat. Tetapkan ambang batas penurunan ke ambang batas untuk persentase panggilan lambat. Setelah aturan pemutusan sirkuit diaktifkan, jika jumlah permintaan yang dilakukan dalam periode waktu tertentu lebih besar dari jumlah minimum permintaan yang ditentukan dan persentase panggilan lambat lebih besar dari ambang batas yang ditentukan, pemutusan sirkuit secara otomatis diterapkan pada permintaan yang diproses dalam periode pemutusan sirkuit berikutnya. Setelah periode pemutusan sirkuit berakhir, pemutus sirkuit mulai mendeteksi RT permintaan berikutnya. Jika RT permintaan berikutnya kurang dari nilai parameter RT Panggilan Lambat, pemutusan sirkuit berakhir. Jika RT permintaan berikutnya lebih besar dari nilai parameter RT Panggilan Lambat, pemutusan sirkuit dipicu lagi.
Jika Anda menyetel parameter ini ke Exception Ratio (%), Anda harus menetapkan ambang batas penurunan ke ambang batas untuk persentase permintaan penyimpangan. Setelah aturan diaktifkan, jika jumlah permintaan penyimpangan dalam periode waktu tertentu lebih besar dari jumlah minimum permintaan yang ditentukan dan persentase permintaan penyimpangan lebih besar dari ambang batas yang ditentukan, pemutusan sirkuit secara otomatis diterapkan pada permintaan yang diproses dalam periode pemutusan sirkuit berikutnya.
Slow Call RT
threshold for the RT of requests.
Circuit Breaking Ratio Threshold
Persentase ambang batas untuk panggilan lambat. Jika ambang batas yang ditentukan tercapai atau dilampaui, pemutusan sirkuit dipicu. Nilai valid: 0-100. Nilai-nilai ini mewakili 0% hingga 100%.
Circuit Breaking Duration (s)
Periode di mana pemutusan sirkuit diterapkan. Jika pemutusan sirkuit diterapkan pada sumber daya, semua panggilan ke sumber daya gagal dalam periode pemutusan sirkuit yang ditentukan.
Web Fallback Behavior
Pilih Return Specific Content atau Redirect to Specified Page untuk Web Fallback Behavior.
Jika Anda memilih Redirect to Specified Page untuk Web Fallback Behavior, Anda perlu mengonfigurasi parameter berikut.
Redirect URL
Tentukan URL to which you want to redirect.
Jika Anda memilih Return Specific Content untuk Web Fallback Behavior, Anda perlu mengonfigurasi parameter berikut.
HTTP Status Code
Tentukan HTTP status code that you want to return. Nilai default: 429.
Type of Returned Content
Pilih Regular Text atau JSON untuk Type of Returned Content.
HTTP Text
Tentukan teks yang ingin Anda kembalikan.
Verifikasi hasil
Jalankan perintah berikut untuk mengirim permintaan uji:
curl -I http://121.196.XX.XX/demo/item/list //Alamat IP masuk gateway.Respon yang mirip dengan berikut ini dikembalikan jika kebijakan pembatasan tidak diaktifkan:
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-envoyRespon yang mirip dengan berikut ini dikembalikan jika kebijakan pembatasan diaktifkan. 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