Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Temel, Standardve Enterprise planları 17 Mart 2025'te kullanımdan kaldırma dönemine girdi. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış planı 30 Eylül 2024'te emeklilik dönemine girdi ve Mart 2025 sonuna kadar tamamen kapatılacak. Daha fazla bilgi için Azure Spring Apps Standart tüketimi ve ayrılmış planı Azure Container Apps'e geçirmek konusuna bakın.
Bu makale şunlar için geçerlidir: ❎ Temel/Standart ✅ Kurumsal
Bu hızlı başlangıçta, Azure Spring Apps Enterprise planında Spring Cloud Gateway'i kullanarak istek hızı sınırlarının nasıl ayarlanacağı gösterilmektedir.
Hız sınırlama, trafikteki ani artışlarla ortaya çıkan sorunlardan kaçınmanızı sağlar. İstek hızı sınırları ayarladığınızda uygulamanız aşırı istekleri reddedebilir. Bu yapılandırma, kısıtlama hatalarını en aza indirmenize ve aktarım hızını daha doğru tahmin etmenize yardımcı olur.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Azure Market'da Kurumsal planın Gereksinimler bölümünü anlayın ve yerine getirin.
- Azure CLI sürüm 2.45.0 veya üzeri.
- Git.
- jq
-
Azure Spring Apps Kurumsal plan uzantısı. Önceki sürümleri kaldırmak ve en son Kurumsal plan uzantısını yüklemek için aşağıdaki komutu kullanın. Uzantıyı
spring-cloud
daha önce yüklediyseniz yapılandırma ve sürüm uyuşmazlıklarını önlemek için uzantıyı kaldırın.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Kurumsal planı kullanarak Uygulamaları derleme ve Azure Spring Apps'e dağıtma bölümünde yer alan adımları tamamlayın.
İstek hızı sınırlarını ayarlama
Spring Cloud Gateway, Açık Kaynak sürümünden yol filtreleri ve daha birçok yol filtresi içerir. Bu filtrelerden biri RateLimit: Kullanıcı isteklerini sınırlama filtresidir. RateLimit filtresi, bir zaman penceresi boyunca yol başına izin verilen istek sayısını sınırlar.
Bir yol tanımlarken, rateLimit filtresini rotanın filtreler listesine ekleyerek ekleyebilirsiniz. Filtre dört seçenek kabul eder:
- Pencere sırasında kabul edilen istek sayısı.
- Pencerenin süresi. Bu değer varsayılan olarak milisaniye cinsindendir, ancak değerin saniye, dakika veya saat cinsinden olduğunu belirtmek için
s
,m
veyah
soneki belirtebilirsiniz. - (İsteğe bağlı) Kullanıcı bölüm anahtarı. Kullanıcı başına hız sınırlaması da uygulayabilirsiniz. Başka bir ifadeyle, farklı kullanıcılar istekte bulunan bir tanımlayıcıya göre kendi aktarım hızına izin verebilir. Anahtarın JWT talebinde mi yoksa HTTP üst bilgisinde mi olduğunu
claim
veyaheader
söz dizimiyle belirtin. - (İsteğe bağlı) Ip adreslerine göre hız sınırı oluşturabilirsiniz, ancak kullanıcı başına hız sınırlaması ile birlikte kullanılamaz.
Aşağıdaki örnek, tüm kullanıcıları her beş saniyede bir iki istek ile /products
rotasına sınırlayacaktır.
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s"
]
}
Her biri kendi client_id
HTTP üst bilgisi tarafından tanımlanan farklı kullanıcı kümeleri için bir yol göstermek istiyorsanız, aşağıdaki yol tanımını kullanın:
{
"predicates": [
"Path=/products",
"Method=GET"
],
"filters": [
"StripPrefix=0",
"RateLimit=2,5s,{header:client_id}"
]
}
Sınır aşıldığında yanıtlar 429 Too Many Requests
durumu ile başarısız olur.
RateLimit
filtresini /products
yoluna uygulamak için aşağıdaki komutu kullanın:
az spring gateway route-config update \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--name catalog-routes \
--app-name catalog-service \
--routes-file azure-spring-apps-enterprise/resources/json/routes/catalog-service_rate-limit.json
Spring Cloud Gateway'de yolun URL'sini /products
almak için aşağıdaki komutları kullanın:
export GATEWAY_URL=$(az spring gateway show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
echo "https://${GATEWAY_URL}/products"
URL'ye /products
beş saniyelik bir süre içinde birkaç istekte bulunarak isteklerin 429 Too Many Requests
durumuyla başarısız olduğunu görün.
Kaynakları temizleme
Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da kaynak grubundaki kaynakları siler. Azure CLI kullanarak kaynak grubunu silmek için aşağıdaki komutları kullanın:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Sonraki adımlar
Aşağıdaki isteğe bağlı hızlı başlangıçlardan herhangi birine geçin: