Pemutusan merupakan salah satu metode kontrol lalu lintas yang paling sering digunakan. Anda dapat menggunakannya untuk mencegah layanan backend terbebani oleh permintaan eksternal berlebihan. Pemutusan membantu mencegah runtuhnya salju berantai dengan memblokir beberapa permintaan ketika jumlah konkurensi tinggi, sehingga memastikan ketersediaan layanan backend. Gateway cloud-native dari Microservices Engine (MSE) memungkinkan Anda mengonfigurasi kebijakan pemutusan pada tingkat rute. Kebijakan ini memastikan bahwa jumlah permintaan pada suatu rute tidak melebihi ambang batas tertentu dalam periode waktu tertentu. Topik ini menjelaskan cara mengonfigurasi kebijakan pemutusan untuk gateway cloud-native.
Fitur pemutusan di konsol MSE telah dioptimalkan untuk menyediakan lebih banyak metode pemutusan. Metode baru hanya tersedia jika versi gateway Anda adalah 1.1.0 atau lebih baru. Fitur pemutusan untuk versi gateway 1.0.0 tetap didukung. Oleh karena itu, konfigurasikan kebijakan pemutusan sesuai dengan versi gateway Anda.
Jika versi gateway Anda adalah 1.1.0 atau lebih baru, ikuti langkah-langkah dalam Konfigurasikan kebijakan pemutusan untuk gateway 1.1.0 atau lebih baru dalam topik ini untuk mengonfigurasi kebijakan pemutusan.
Jika versi gateway Anda adalah 1.0.0, ikuti langkah-langkah dalam Konfigurasikan kebijakan pemutusan untuk gateway 1.0.0 dalam topik ini untuk mengonfigurasi kebijakan pemutusan.
Konfigurasikan kebijakan pemutusan untuk gateway 1.1.0 atau lebih baru
Ambang batas pemutusan yang Anda konfigurasikan adalah ambang batas tingkat gateway. Hitung ambang batas pemutusan untuk node gateway menggunakan rumus berikut: Ambang batas tingkat gateway / Jumlah node. Jika hasil perhitungan adalah nilai desimal, bulatkan ke atas menjadi bilangan bulat terdekat. Sebagai contoh, jika permintaan per detik (QPS) dari rute demo adalah 1.001 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 sisi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik ID gateway.
Di panel navigasi sisi kiri, klik Routes, lalu klik tab Routes.
Temukan aturan routing yang ingin Anda modifikasi dan klik Policies di kolom Actions.
Di bagian Policies pada halaman yang muncul, klik tab Throttling.
Gateway versi 1.2.25 atau lebih baru
Konfigurasikan aturan pemutusan
Aturan pemutusan digunakan untuk memblokir lalu lintas segera jika sistem mendeteksi bahwa QPS suatu rute mencapai ambang batas tertentu. Ini mencegah kerusakan layanan backend akibat lonjakan lalu lintas dan memastikan ketersediaan tinggi layanan backend.
Pada tab Throttling, klik subtab Throttling Rules.
Di subtab Throttling Rules, konfigurasikan parameter.
Parameter
Deskripsi
Gateway QPS Threshold
Masukkan nilai untuk Gateway QPS Threshold.
Web Fallback Behavior
Pilih Return Specified Content atau Go to Specified Page untuk Web Fallback Behavior.
Jika Anda mengatur Web Fallback Behavior ke Go to Specified Page:
Redirect URL
Masukkan alamat untuk dialihkan.
Jika Anda mengatur Web Fallback Behavior ke Return Specified Content:
HTTP Status Code
Masukkan kode status HTTP. Nilai default adalah 429.
Returned Content Type
Pilih Plain Text atau JSON untuk Returned Content Type.
Returned HTTP Text
Masukkan teks yang dikembalikan.
Enable
Jika Anda menyalakan saklar ini, aturan pemutusan yang dikonfigurasi akan berlaku.
Klik New atau Save untuk membuat atau memperbarui aturan. Di pesan yang muncul, klik OK.
Konfigurasikan aturan konkurensi
Aturan konkurensi digunakan untuk memblokir lalu lintas segera jika sistem mendeteksi bahwa jumlah total permintaan yang sedang diproses oleh gateway mencapai ambang batas tertentu. Saat mengonfigurasi aturan konkurensi, Anda dapat menentukan jumlah maksimum permintaan bersamaan yang dapat diproses oleh layanan backend. Ini memastikan ketersediaan layanan backend dalam skenario dengan sejumlah besar permintaan bersamaan.
Di tab Throttling, klik subtab Concurrency Rules.
Di subtab Concurrency Rules, konfigurasikan parameter.
Parameter
Deskripsi
Gateway Parallelism Threshold
Masukkan nilai untuk Gateway Parallelism Threshold.
Web Fallback Behavior
Pilih Return Specified Content atau Go to Specified Page untuk Web Fallback Behavior.
Jika Anda mengatur Web Fallback Behavior ke Go to Specified Page:
Redirect URL
Masukkan alamat untuk dialihkan.
Jika Anda mengatur Web Fallback Behavior ke Return Specified Content:
HTTP Status Code
Masukkan kode status HTTP. Nilai default adalah 429.
Returned Content Type
Pilih Plain Text atau JSON untuk Returned Content Type.
Returned HTTP Text
Masukkan teks yang dikembalikan.
Enable
Jika Anda menyalakan saklar ini, aturan konkurensi yang dikonfigurasi akan berlaku.
Klik New atau Save untuk membuat atau memperbarui aturan. Di pesan yang muncul, klik OK.
Konfigurasikan aturan pemutusan sirkuit
Aturan pemutusan sirkuit digunakan untuk menurunkan prioritas dependensi suatu rute segera jika 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 pada rute.
Di tab Throttling, klik subtab Fuse rule.
Di subtab Fuse rule, konfigurasikan parameter.
Parameter
Deskripsi
Statistical window duration
Panjang jendela waktu. Rentang valid adalah dari 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
Nilai valid: Slow call ratio (%) dan Abnormal proportion (%).
Jika Anda mengatur parameter ini ke Slow call ratio (%), Anda harus mengonfigurasi parameter Slow call RT. Parameter RT Panggilan Lambat menentukan ambang batas untuk waktu respons permintaan. Jika waktu respons permintaan melebihi nilai parameter RT Panggilan Lambat, permintaan tersebut dihitung sebagai panggilan lambat. Atur ambang batas penurunan ke ambang batas untuk persentase panggilan lambat. Setelah aturan diaktifkan, jika jumlah permintaan yang dimulai 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 ulang.
Jika Anda memilih Abnormal proportion (%), Anda harus menetapkan ambang batas penurunan ke ambang batas untuk persentase permintaan abnormal. Setelah aturan pemutusan sirkuit diaktifkan, jika jumlah permintaan abnormal dalam periode waktu tertentu lebih besar dari jumlah minimum permintaan yang ditentukan dan persentase permintaan abnormal lebih besar dari ambang batas yang ditentukan, pemutusan sirkuit secara otomatis diterapkan pada permintaan yang diproses dalam periode pemutusan sirkuit berikutnya.
Fusing time (s)
Periode di mana pemutusan sirkuit diterapkan. Jika pemutusan sirkuit diterapkan pada permintaan untuk rute, semua panggilan ke permintaan untuk rute gagal dalam periode pemutusan sirkuit yang dikonfigurasi.
Web Fallback Behavior
Pilih Return Specified Content atau Go to Specified Page untuk Web Fallback Behavior.
Jika Anda mengatur Web Fallback Behavior ke Go to Specified Page:
Redirect URL
Masukkan alamat untuk dialihkan.
Jika Anda mengatur Web Fallback Behavior ke Return Specified Content:
HTTP Status Code
Masukkan kode status HTTP. Nilai default adalah 429.
Returned Content Type
Pilih Plain Text atau JSON untuk Returned Content Type.
Returned HTTP Text
Masukkan teks yang dikembalikan.
Enable
Jika Anda menyalakan saklar ini, aturan pemutusan yang dikonfigurasi akan berlaku.
Klik Create atau Save untuk membuat atau memperbarui aturan. Di pesan yang muncul, klik OK.
Gateway versi 1.1.0 hingga 1.2.24
Konfigurasikan aturan pemutusan
Aturan pemutusan digunakan untuk memblokir lalu lintas segera jika sistem mendeteksi bahwa QPS suatu rute mencapai ambang batas tertentu. Ini mencegah kerusakan layanan backend akibat lonjakan lalu lintas dan memastikan ketersediaan tinggi layanan backend.
Pada tab Throttling, klik subtab Throttling Rules, lalu klik Add Throttling Rule.
Di kotak dialog Add Throttling Protection Rule, konfigurasikan parameter.
Di langkah Configure a Throttling Rule, masukkan nilai di bidang Overall QPS Threshold dan nyalakan saklar Whether to open. Lalu, klik Next untuk mengonfigurasi perilaku pemutusan.
Di langkah Configure Throttling Behavior, klik New behavior untuk mengonfigurasi perilaku respons HTTP setelah pemutusan diaktifkan.
Setelah Anda mengonfigurasi perilaku pemutusan, klik New.
Konfigurasikan aturan konkurensi
Aturan konkurensi digunakan untuk memblokir lalu lintas segera jika sistem mendeteksi bahwa jumlah total permintaan yang sedang diproses oleh gateway mencapai ambang batas tertentu. Saat mengonfigurasi aturan konkurensi, Anda dapat menentukan jumlah maksimum permintaan bersamaan yang dapat diproses oleh layanan backend. Ini memastikan ketersediaan layanan backend dalam skenario dengan sejumlah besar permintaan bersamaan.
Di tab Throttling, klik subtab Concurrency Rules, dan klik Add Concurrency Rules.
Di kotak dialog Add Concurrency Protection Rule, konfigurasikan parameter.
Di langkah Configure a Protection Rule, masukkan nilai di bidang Overall Request Concurrency Threshold dan nyalakan saklar Whether to open. Lalu, klik Next untuk mengonfigurasi perilaku pemutusan.
Di langkah Configure Throttling Behavior, klik Add Behavior untuk mengonfigurasi perilaku respons HTTP setelah pemutusan dipicu.
Setelah Anda mengonfigurasi perilaku pemutusan, klik New.
Konfigurasikan aturan pemutusan sirkuit
Aturan pemutusan sirkuit digunakan untuk menurunkan prioritas dependensi suatu rute segera jika 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 pada rute.
Pada tab Throttling, klik subtab Fuse rule, lalu klik Added fusing rule.
Di kotak dialog Add Circuit Breaking Protection Rule, konfigurasikan parameter.
Di langkah Configure a Protection Rule, masukkan nilai di bidang Overall Request Concurrency Threshold dan nyalakan saklar Whether to open. Lalu, klik Next untuk mengonfigurasi perilaku pemutusan.
Parameter
Deskripsi
Statistical window duration
Panjang jendela waktu. Rentang valid adalah dari 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
Pilih Slow call ratio (%) atau Abnormal proportion (%).
Jika Anda memilih Rasio panggilan lambat (%), Anda harus menentukan parameter RT Panggilan Lambat. Parameter RT Panggilan Lambat menentukan RT maksimum. Jika RT permintaan lebih besar dari nilai parameter RT Panggilan Lambat, panggilan lambat dihitung. Atur ambang batas penurunan ke ambang batas untuk persentase panggilan lambat. Setelah aturan diaktifkan, jika jumlah permintaan yang dimulai 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 ulang.
Jika Anda memilih Proporsi abnormal (%), Anda harus menetapkan ambang batas penurunan ke ambang batas untuk persentase permintaan abnormal. Setelah aturan diaktifkan, jika jumlah permintaan abnormal dalam periode waktu tertentu lebih besar dari jumlah minimum permintaan yang ditentukan dan persentase permintaan abnormal lebih besar dari ambang batas yang ditentukan, pemutusan sirkuit secara otomatis diterapkan pada permintaan yang diproses dalam periode pemutusan sirkuit berikutnya.
Fusing time (s)
Periode di mana pemutusan sirkuit diterapkan. Jika pemutusan sirkuit diterapkan pada permintaan untuk rute, semua panggilan ke permintaan untuk rute gagal dalam periode pemutusan sirkuit yang dikonfigurasi.
Fuse recovery strategy
Menentukan apakah pemutus sirkuit memicu ulang pemutusan sirkuit setelah periode pemutusan sirkuit berakhir.
Jika Anda memilih Pemulihan Deteksi Tunggal, pemutus sirkuit mendeteksi status permintaan berikutnya setelah periode pemutusan sirkuit berakhir. Jika tidak ada panggilan permintaan lambat yang terjadi atau permintaan normal, pemutusan sirkuit berakhir. Sebaliknya, pemutusan sirkuit dipicu ulang.
Di langkah Configure Throttling Behavior, klik Add Behavior untuk mengonfigurasi perilaku respons HTTP setelah pemutusan dipicu.
Setelah Anda mengonfigurasi perilaku pemutusan, klik New.
Konfigurasikan kebijakan pemutusan untuk gateway 1.0.0
Masuk ke Konsol MSE.
Di panel navigasi sisi kiri, pilih Cloud-native Gateway > Gateways. Di bilah navigasi atas, pilih wilayah.
Di halaman Gateways, klik ID gateway.
Di panel navigasi sisi kiri, pilih Routes > Route Settings. Temukan aturan routing yang ingin Anda modifikasi dan klik Policies di kolom Actions.
Di bagian Policies pada halaman yang muncul, klik tab Throttling.
Jika tidak ada kebijakan pemutusan, klik Configure policy.
Jika kebijakan pemutusan sudah ada, klik ikon
di sebelah Ambang Batas Pemutusan.
Di bagian Throttling Threshold, konfigurasikan parameter Time Window dan Maximum Number of Requests dan klikOK.
Deskripsi parameter:
Time Window: periode waktu di mana pemutusan diterapkan. Nilai default adalah 1 detik. Untuk mengonfigurasi parameter ini, tentukan jendela waktu dengan unit tertentu.
Single-machine Request Threshold: jumlah maksimum permintaan server tunggal yang diizinkan oleh gateway.
Setelah kebijakan pemutusan dikonfigurasi, nyalakan Enabled.
Jika Anda menyalakan saklar Diaktifkan, jumlah permintaan untuk rute tunduk pada pengaturan parameter Jendela Waktu dan Ambang Batas Permintaan Single-machine.
Jika Anda mematikan saklar Diaktifkan, jumlah permintaan untuk rute tidak dibatasi.
Verifikasi hasil
Jalankan perintah berikut untuk mengirim permintaan uji:
curl -I http://121.196.XX.XX/demo/item/list //Alamat IP Gateway Ingress.Contoh respons ketika kebijakan pemutusan yang dikonfigurasi 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-envoyContoh respons ketika kebijakan pemutusan yang dikonfigurasi diaktifkan (kode status HTTP yang dikembalikan: 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-envoy