Gateway cloud-native berfungsi sebagai titik masuk arsitektur sistem Anda, menggabungkan fungsi gateway traffic tradisional dan gateway layanan mikro. Integrasi ini secara signifikan mengurangi overhead jaringan dan biaya operasional, sekaligus menyediakan tata kelola lalu lintas dan observabilitas yang komprehensif. Topik ini menjelaskan cara mengonfigurasi kebijakan perutean dan menyiapkan peringatan dengan mengaitkan gateway cloud-native ke layanan dalam registrasi layanan MSE Nacos.
Prasyarat
-
Gateway cloud-native telah dibuat. Untuk informasi selengkapnya, lihat Buat gateway cloud-native.
-
Engine MSE Nacos telah dibuat. Untuk informasi selengkapnya, lihat Buat engine MSE Nacos.
-
Layanan telah terdaftar di MSE Nacos. Untuk informasi selengkapnya, lihat Gunakan MSE Nacos sebagai service registry untuk aplikasi Spring Cloud.
Gateway cloud-native tidak mendukung layanan on-premises yang terdaftar di MSE Nacos atau ZooKeeper.
Buat rute
-
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 tersebut.
-
Di panel navigasi kiri, klik Routes. Di tab Routes, klik Add Route.
-
Di halaman Add Route, atur Route Name menjadi
springcloud-demo, pilih * untuk Domain Name, dan atur aturan pencocokan Path ke Prefix dengan nilai /. Untuk tujuan rute, pilih Single Service, lalu klik Associate Service di bawah Service Name. -
Di panel Associate Service, konfigurasikan parameter dan klik OK.
Atur Source Type ke MSE Nacos, pilih Namespace yang dituju, lalu pilih layanan nacos-service-consumer dari daftar layanan.
-
Atur Service Name menjadi
nacos-service-consumerdan klik Save and Advertise.
Konfigurasi kebijakan perutean
Uji rute tanpa kebijakan
-
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 tersebut.
-
Di halaman Overview, klik tab Gateway Ingress untuk melihat Ingress IP Address gateway tersebut.
Daftar tersebut berisi instans SLB yang menghadap publik dan privat. Ingress IP Address dari instans yang menghadap publik, seperti
8.136.xxx.xxx, merupakan ingress publik gateway tersebut.CatatanAlamat IP ingress gateway cloud-native adalah alamat IP instans SLB yang terkait. Anda dapat mengganti instans SLB yang terkait dengan milik Anda sendiri. Untuk informasi selengkapnya, lihat Kelola SLB ingress gateway.
-
Jalankan perintah berikut untuk mengirim permintaan pengujian. Ganti <public_ingress_ip> dengan alamat IP ingress publik yang Anda peroleh pada langkah sebelumnya.
curl -I http://<public_ingress_ip>/echo-rest/helloCatatanPerintah ini mengirim permintaan ke layanan demo yang bersumber dari MSE Nacos. Anda dapat memodifikasi path permintaan sesuai dengan layanan backend Anda.
Permintaan yang berhasil akan mengembalikan respons berikut:
HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8 Content-Length: 5 Date: Thu, 29 Aug 2024 08:21:47 GMT req-cost-time: 9 req-arrive-time: 1724919707979 resp-start-time: 1724919707988 x-envoy-upstream-service-time: 8 server: istio-envoy
Konfigurasi kebijakan throttling
Dalam skenario konkurensi tinggi, lonjakan permintaan dapat membebani layanan backend jika tidak ada pembatasan kecepatan yang tepat. Hal ini dapat memperlambat waktu respons atau bahkan menyebabkan layanan crash. Pembatasan kecepatan memastikan volume permintaan tetap dalam batas yang dapat dikelola. Gateway cloud-native memungkinkan Anda mengonfigurasi kebijakan throttling untuk melindungi layanan Anda. Untuk informasi lebih lanjut tentang kebijakan perutean lainnya, lihat Kebijakan perutean.
-
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 tersebut.
-
Di panel navigasi kiri, pilih Routes.
-
Temukan rute yang ingin Anda kelola dan klik Policies di kolom Actions.
-
Di tab Policies, klik Throttling.
Aturan pengendalian aliran memantau metrik QPS (queries per second) suatu rute. Ketika metrik mencapai ambang batas yang ditentukan, gateway segera memblokir traffic berikutnya. Hal ini mencegah layanan backend kewalahan akibat lonjakan lalu lintas mendadak dan membantu memastikan ketersediaan tinggi.
-
Di bagian Throttling, klik tab Throttling Rules.
-
Di area Throttling Rules, konfigurasikan pengaturan berikut.
Parameter
Deskripsi
Contoh
Overall QPS Threshold
Menentukan Overall QPS Threshold.
1
Web fallback behavior
Atur Web fallback behavior ke Returns the specified content atau Jump to the specified page.
Return specified content
HTTP Status Code
Menentukan HTTP Status Code yang dikembalikan untuk permintaan yang dibatasi. Nilai default-nya adalah 429.
429
Returned Content-Type
Atur Returned Content-Type ke Plain text atau JSON.
Plain text
Returned HTTP Text
Menentukan isi respons fallback.
springcloud-demo flow limit
Whether to open
Mengaktifkan atau menonaktifkan aturan ini.
Selected
-
Klik New atau Save, lalu klik OK di kotak dialog konfirmasi.
-
-
Jalankan skrip berikut untuk menguji kebijakan tersebut. Ganti <public_ingress_ip> dengan alamat IP ingress publik Anda.
Windows
@echo off set "localUrl=http://<public_ingress_ip>/echo-rest/hello" :loop curl -i -s %localUrl% goto loopLinux
#!/bin/bash URL="http://<public_ingress_ip>/echo-rest/hello" while true; do curl -i -s $URL doneRespons yang diharapkan: Setelah kebijakan throttling diaktifkan, permintaan yang melebihi ambang batas QPS akan diblokir dan menerima kode status HTTP 429 beserta pesan kustom.
HTTP/1.1 429 Too Many Requests content-type: text/plain; charset=UTF-8 content-length: 26 date: Thu, 29 Aug 2024 08:54:46 GMT server: istio-envoy springcloud-demo flow limit
Dokumentasi terkait
Untuk troubleshooting, lihat FAQ gateway cloud-native. Anda juga dapat menggunakan fitur diagnostik bawaan. Untuk informasi selengkapnya, lihat Diagnostik AI untuk gateway cloud-native.