Saat layanan backend menerima lebih banyak permintaan daripada yang dapat ditangani, waktu respons meningkat dan kegagalan berantai dapat menyebar ke seluruh layanan mikro Anda. Kebijakan throttling pada gateway cloud-native MSE membatasi laju permintaan di tingkat entri rute sehingga lalu lintas berlebih ditolak sebelum mencapai layanan Anda.
MSE mendukung tiga jenis aturan throttling tingkat rute. Aturan ini bersifat independen dan dapat dikombinasikan pada rute yang sama:
| Jenis Aturan | Apa yang Dikontrol | Kapan Digunakan |
|---|---|---|
| Throttling rule | Queries per second (QPS) pada suatu route | Melindungi dari lonjakan lalu lintas mendadak |
| Concurrency rule | Jumlah permintaan yang diproses secara simultan | Mencegah kehabisan sumber daya akibat permintaan berdurasi panjang |
| Circuit breaking rule | Ambang batas laju error atau waktu respons | Mengisolasi Backend yang tidak sehat dan memungkinkan pemulihan |
Cara kerja throttling
Distribusi ambang batas per node
Ambang batas yang Anda konfigurasikan berlaku di tingkat gateway. Untuk gateway multi-node, MSE membagi ambang batas tersebut merata di seluruh node dengan pembulatan ke atas:
Per-node threshold = ceil(Gateway-level threshold / Number of nodes)Sebagai contoh, jika Anda mengatur ambang batas QPS sebesar 1001 pada gateway dengan 2 node, setiap node memberlakukan batas 501 QPS.
Interaksi ketiga jenis aturan
Aturan throttling, konkurensi, dan pemutusan sirkuit dievaluasi secara independen. Sebuah permintaan harus lolos dari semua aturan aktif pada suatu rute agar dapat mencapai backend:
Throttling rules memeriksa laju permintaan (QPS). Jika laju tersebut melebihi ambang batas, permintaan akan segera ditolak.
Concurrency Rules memeriksa jumlah permintaan yang sedang dalam proses. Jika jumlahnya melebihi ambang batas, permintaan langsung ditolak.
Circuit breaking rules memantau waktu respons atau laju error dalam jendela geser. Saat ambang batas dilampaui, sirkuit terbuka dan semua permintaan ke rute tersebut ditolak selama durasi yang telah dikonfigurasi.
Anda dapat mengaktifkan kombinasi apa pun dari aturan ini pada satu rute untuk mengatasi berbagai skenario kegagalan.
Konfigurasikan aturan throttling
Aturan throttling menolak permintaan ketika QPS pada suatu rute melebihi ambang batas yang ditentukan.
Antarmuka konfigurasi bervariasi tergantung versi gateway. Gateway v1.2.25 atau yang lebih baru menggunakan konfigurasi inline pada halaman. Gateway v1.1.0 hingga v1.2.24 menggunakan kotak dialog. Kedua antarmuka dijelaskan di bawah ini. Gateway v1.0.0 hanya mendukung throttling jendela waktu dasar. Lihat Konfigurasikan throttling untuk gateway v1.0.0.
Buka pengaturan throttling
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik nama gateway tersebut.
Di panel navigasi kiri, klik Routes, lalu klik tab Routes.
Temukan rute target dan klik Policies di kolom Actions.
Di bagian Policies, klik tab Throttling.
Gateway v1.2.25 atau yang lebih baru
Pada tab Throttling, klik subtab Throttling Rules.
Konfigurasikan parameter berikut:
Parameter Deskripsi Gateway QPS Threshold QPS maksimum yang diizinkan di seluruh gateway untuk rute ini Web Fallback Behavior Tindakan yang diambil saat ambang batas terlampaui: Return Specified Content atau Go to Specified Page Redirect URL (Jika Go to Specified Page dipilih) URL tujuan untuk pengalihan HTTP Status Code (Jika Return Specified Content dipilih) Kode status HTTP yang dikembalikan ke client. Default: 429 Returned Content Type (Jika Return Specified Content dipilih) Format tanggapan: Plain Text atau JSON Returned HTTP Text (Jika Return Specified Content dipilih) Konten isi tanggapan Enable Aktifkan atau nonaktifkan aturan Klik New atau Save. Di pesan konfirmasi, klik OK.
Gateway v1.1.0 hingga v1.2.24
Di tab Throttling, klik subtab Add Throttling Rule, lalu klik Add Throttling Rule.
Di kotak dialog Add Throttling Protection Rule:
Pada langkah Configure a Throttling Rule, masukkan nilai pada bidang Overall QPS Threshold, lalu aktifkan sakelar Whether to open. Klik Next.
Pada langkah Configure Throttling Behavior, klik New behavior untuk menentukan tanggapan HTTP yang dikembalikan saat throttling dipicu.
Klik New.
Konfigurasikan aturan konkurensi
Aturan konkurensi menolak permintaan ketika jumlah total permintaan yang sedang dalam proses pada suatu rute melebihi ambang batas yang ditentukan. Gunakan aturan konkurensi untuk membatasi konsumsi sumber daya dari permintaan lambat atau berdurasi panjang.
Buka pengaturan throttling
Ikuti langkah navigasi yang sama seperti pada Konfigurasikan aturan throttling > Buka pengaturan throttling.
Gateway v1.2.25 atau yang lebih baru
Di tab Throttling, klik subtab Concurrency Rules.
Konfigurasikan parameter berikut:
Parameter Deskripsi Gateway Parallelism Threshold Jumlah maksimum permintaan konkuren yang diizinkan di seluruh gateway untuk rute ini Web Fallback Behavior Tindakan yang diambil saat ambang batas terlampaui: Return Specified Content atau Go to Specified Page Redirect URL (Jika Go to Specified Page dipilih) URL tujuan untuk pengalihan HTTP Status Code (Jika Return Specified Content dipilih) Kode status HTTP yang dikembalikan ke client. Default: 429 Returned Content Type (Jika Return Specified Content dipilih) Format tanggapan: Plain Text atau JSON Returned HTTP Text (Jika Return Specified Content dipilih) Konten isi tanggapan Enable Aktifkan atau nonaktifkan aturan Klik New atau Save. Di pesan konfirmasi, klik OK.
Gateway v1.1.0 hingga v1.2.24
Di tab Throttling, klik subtab Concurrency Rules, lalu klik Add Concurrency Rules.
Di kotak dialog Add Concurrency Protection Rule:
Pada langkah Configure a Protection Rule, masukkan nilai di bidang Overall Request Concurrency Threshold dan aktifkan sakelar Whether to open. Klik Next.
Pada langkah Configure Throttling Behavior, klik Add Behavior untuk menentukan tanggapan HTTP yang dikembalikan saat throttling dipicu.
Klik New.
Konfigurasikan aturan pemutusan sirkuit
Aturan pemutusan sirkuit sementara menghentikan pengiriman lalu lintas ketika waktu respons atau laju error pada suatu rute melebihi ambang batas. Selama periode pemutusan sirkuit, semua permintaan ke rute tersebut ditolak dengan tanggapan fallback yang telah dikonfigurasi. Setelah periode berakhir, gateway mengirim permintaan probe untuk memutuskan apakah akan melanjutkan lalu lintas normal atau memicu ulang pemutusan sirkuit.
Buka pengaturan throttling
Ikuti langkah navigasi yang sama seperti pada Konfigurasikan aturan throttling > Buka pengaturan throttling.
Gateway v1.2.25 atau yang lebih baru
Di tab Throttling, klik subtab Fuse rule.
Konfigurasikan parameter berikut:
Parameter Deskripsi Statistical window duration Durasi jendela evaluasi. Rentang valid: 1 detik hingga 120 menit Minimum number of requests Jumlah minimum permintaan yang diperlukan dalam jendela sebelum pemutusan sirkuit dapat dipicu. Jika jumlah permintaan di bawah nilai ini, pemutusan sirkuit tidak diaktifkan meskipun ambang batas terlampaui Threshold Type Metrik yang digunakan untuk mengevaluasi kondisi pemutusan sirkuit. Lihat Opsi jenis ambang batas Fusing time (s) Durasi periode pemutusan sirkuit. Semua permintaan ke rute tersebut ditolak selama waktu ini Web Fallback Behavior Tindakan yang diambil selama pemutusan sirkuit: Return Specified Content atau Go to Specified Page Redirect URL (Jika Go to Specified Page dipilih) URL tujuan untuk pengalihan HTTP Status Code (Jika Return Specified Content dipilih) Kode status HTTP yang dikembalikan ke client. Default: 429 Returned Content Type (Jika Return Specified Content dipilih) Format tanggapan: Plain Text atau JSON Returned HTTP Text (Jika Return Specified Content dipilih) Konten isi tanggapan Enable Aktifkan atau nonaktifkan aturan Opsi jenis ambang batas
Slow call ratio — Memulai pemutusan sirkuit saat persentase permintaan lambat melebihi ambang batas. Atur parameter Slow call RT untuk menentukan waktu respons (RT) maksimum yang dapat diterima. Permintaan apa pun dengan RT di atas nilai ini dihitung sebagai panggilan lambat. Setelah pemutusan sirkuit berakhir, gateway menguji permintaan berikutnya. Jika RT-nya dalam batas, lalu lintas dilanjutkan. Jika tidak, pemutusan sirkuit dipicu ulang.
Abnormal proportion (%) — Memulai pemutusan sirkuit saat persentase permintaan gagal melebihi ambang batas. Setelah pemutusan sirkuit berakhir, gateway melanjutkan lalu lintas secara otomatis.
Klik Create atau Save. Di pesan konfirmasi, klik OK.
Gateway v1.1.0 hingga v1.2.24
Di tab Throttling, klik subtab Fuse rule, lalu klik Added fusing rule.
Di kotak dialog Add Circuit Breaking Protection Rule:
Pada langkah Configure a Protection Rule, konfigurasikan parameter berikut dan aktifkan sakelar Whether to open. Klik Next.
Parameter Deskripsi Statistical window duration Panjang jendela evaluasi. Rentang valid: 1 detik hingga 120 menit Minimum number of requests Jumlah permintaan minimum yang diperlukan sebelum pemutusan sirkuit dapat dipicu Threshold Type Slow call ratio (%) atau Abnormal proportion (%). Untuk slow call ratio, konfigurasikan juga parameter Slow call RT untuk menetapkan ambang batas waktu respons Fusing time (s) Durasi periode pemutusan sirkuit Fuse recovery strategy Perilaku pemulihan setelah periode pemutusan sirkuit berakhir. Pilih Single probe recovery untuk menguji permintaan berikutnya sebelum melanjutkan traffic Pada langkah Configure Throttling Behavior, klik Add Behavior untuk menentukan tanggapan HTTP yang dikembalikan selama pemutusan sirkuit.
Klik New.
Konfigurasikan throttling untuk gateway v1.0.0
Gateway yang menjalankan versi 1.0.0 hanya mendukung throttling jendela waktu dasar. Untuk menggunakan aturan throttling, konkurensi, dan pemutusan sirkuit, lakukan peningkatan ke versi 1.1.0 atau yang lebih baru.
Masuk ke Konsol MSE.
Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di bilah navigasi atas, pilih wilayah.
Di halaman Gateways, klik nama gateway tersebut.
Di panel navigasi kiri, pilih Routes > Route Settings. Temukan rute target dan klik Policies di kolom Actions.
Di bagian Policies, klik tab Throttling.
Jika belum ada kebijakan throttling, klik Configure policy.
Jika kebijakan throttling sudah ada, klik ikon edit di samping Throttling Threshold.
Di bagian Throttling Threshold, konfigurasikan parameter berikut dan klik OK:
Parameter Deskripsi Time Window Periode penghitungan jumlah permintaan. Default: 1 detik Maximum Number of Requests (Single-machine Request Threshold) Jumlah maksimum permintaan per server tunggal yang diizinkan per node gateway dalam jendela waktu tersebut Aktifkan Enabled untuk mengaktifkan kebijakan throttling.
Saat diaktifkan, gateway membatasi permintaan pada rute ini berdasarkan jendela waktu dan ambang batas yang dikonfigurasi.
Saat dinonaktifkan, permintaan tidak dibatasi.
Verifikasi konfigurasi
Kirim permintaan uji untuk memastikan kebijakan throttling berfungsi sesuai harapan:
curl -I http://<gateway-ip>/demo/item/listGanti <gateway-ip> dengan alamat IP gateway Ingress Anda.
Tanggapan normal (throttling tidak dipicu):
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-envoyThrottled Response (HTTP 429):
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-envoyHeader x-local-rate-limit: true mengonfirmasi bahwa kebijakan throttling gateway menolak permintaan tersebut.
FAQ
Apakah saya dapat menggunakan beberapa jenis aturan pada rute yang sama?
Ya. Aturan throttling, konkurensi, dan pemutusan sirkuit bersifat independen. Anda dapat mengaktifkan kombinasi apa pun pada satu rute. Sebuah permintaan harus lolos dari semua aturan aktif agar dapat mencapai backend.
Bagaimana cara menghitung ambang batas per node untuk gateway multi-node?
MSE membagi ambang batas tingkat gateway dengan jumlah node dan membulatkan ke atas. Misalnya, ambang batas QPS sebesar 1001 pada gateway 2-node menghasilkan batas per node sebesar 501 QPS.
Apa yang terjadi saat pemutusan sirkuit berakhir?
Perilaku bergantung pada jenis ambang batas:
Slow call ratio: Gateway mengirim permintaan probe. Jika waktu respons dalam batas, lalu lintas dilanjutkan. Jika tidak, pemutusan sirkuit dipicu ulang.
Abnormal proportion: Lalu lintas dilanjutkan secara otomatis setelah periode pemutusan sirkuit berakhir.
Versi gateway mana yang saya butuhkan untuk setiap jenis aturan?
| Jenis aturan | Versi gateway minimum |
|---|---|
| Basic time-window throttling | v1.0.0 |
| Aturan throttling, konkurensi, dan pemutusan sirkuit | v1.1.0 |
| Konfigurasi inline (tanpa kotak dialog) | v1.2.25 |