Tüm Ürünler
Search
Belge Merkezi

Serverless App Engine:Trafik koruması

Son Güncelleme:Oct 06, 2026

Trafik koruması, Microservices Engine (MSE) trafik koruma yeteneklerini Serverless App Engine (SAE) ile entegre eder ve bir uygulamaya ulaşan trafiği API düzeyinde kontrol eder. Trafik artışları sırasında veya aşağı akış bağımlılıkları dengesizleştiğinde uygulamanın kullanılabilirliğini korumak için hız sınırlama, eşzamanlılık yalıtımı, devre kesme ve kritik nokta parametre koruma kurallarını kullanın. Trafik koruması, trafik dağılımını saniye düzeyinde hassasiyetle analiz eder.

Ön koşullar

Not

MSE kullandığınızda ayrı olarak ücretlendirilirsiniz. MSE faturalandırması hakkında daha fazla bilgi için bkz. MSE Mikroservis Yönetimi Faturalandırması.

Sınırlamalar

Trafik koruması için aşağıdaki sınırlamalar geçerlidir:

  • Desteklenen uygulamalar — Trafik koruması yalnızca 8 Kasım 2023 tarihinde veya sonrasında oluşturulan mikroservis uygulamaları için geçerlidir.

  • Kuyruğa alma aktarım hızı — Hızı sınırlandırılan istekler kuyruğa alındığında, QPS değerini 1.000'den büyük olacak şekilde ayarlamayın; bu değer 1 milisaniyelik bir istek aralığına karşılık gelir.

  • Apache Dubbo sürümleri — Apache Dubbo 2.7.0 ila 2.7.3 sürümleri özel davranışları desteklemez. Bu sürümlerde hızı sınırlandırılan bir istek java.lang.RuntimeException döndürür ve içerik SentinelBlockedException ile hız sınırlama bilgilerini içerir.

  • Özel yanıt türleri — Özel yanıt, tanımsız türlere sahip jenerikler içeren nesne türlerini desteklemez; örneğin Map<K, V> ve List<T>.

Koruma kuralı türü seçin

Trafik koruması beş kural türü sağlar ve her kural türünün SAE konsolunda kendi sekmesi bulunur. Aşağıdaki tabloda her kural türünün neyi kontrol ettiği ve nerede yapılandırıldığı açıklanmaktadır.


Kural türü


Neyi kontrol eder


İstatistiksel boyut


Konsol sekmesi


Arayüz düzeyinde hız sınırlama


Bir uygulamanın veya hizmetin saniyedeki sorgu sayısı (QPS). QPS eşik değere ulaştığında trafik hemen engellenir.


QPS


Interface-level Throttling


Eşzamanlılık yalıtımı


Bir API'nin veya bağımlılıklarının eşzamanlı iş parçacığı sayısı.


Eşzamanlı iş parçacıkları


Concurrency Isolation


Devre kesme


Dengesiz bir API'ye veya aşağı akış bağımlılığına yapılan çağrılar; yanıt süresine veya hata oranına göre belirlenir.


Yavaş çağrı oranı veya anormal oran


Circuit Breaking Rules


Kritik nokta parametre koruması (RPC)


Sıkça çağrılan parametreler içeren kaynak çağrıları. Bir parametre, enstrümantasyon noktasındaki dizin konumuna göre tanımlanır.


Kritik nokta parametresi başına istek sayısı veya eşzamanlı sayı


Hotspot Parameter Protection (RPC)


Kritik nokta parametre koruması (HTTP isteği)


Web hizmetleri sağlayan bir uygulamaya erişim istekleri; istemci IP adresi, Host, Header ve URL parametresi gibi istek özelliklerine göre belirlenir.


Kritik nokta parametresi başına istek sayısı


Hotspot Parameter Protection (HTTP Request)

Arayüz düzeyinde hız sınırlama kuralları ve kritik nokta parametre koruma kuralları, hızı sınırlandırılan trafiğin nasıl işleneceğini seçmenize de olanak tanır. Fast failure, aşırı istekleri anında engeller. Waiting in line, aşırı istekleri kuyruğa alarak isteklerin sabit bir hızda geçmesini sağlar ve genellikle zirve yük kaydırma için kullanılır. İstekleri kuyruğa alıyorsanız, Sınırlamalar bölümünde açıklanan kuyruğa alma aktarım hızı sınırına dikkat edin.

Trafik koruması sekmesine gidin

  1. SAE uygulama listesinde, sayfanın üst kısmından bölgeyi ve ad alanını seçin, ardından uygulama ayrıntıları sayfasına gitmek için uygulamanın Application ID öğesine tıklayın.

  2. Sol gezinme bölmesinde Microservices Governance > Traffic Governance seçeneğini belirleyin ve Traffic Protection sekmesine tıklayın.

Koruma kurallarını yapılandırın

Oluşturma akışı Configure Protection Behavior sihirbazını içeren kural türleri için son adım, bir kural tetiklendikten sonra bir isteğin alacağı yanıtı tanımlayan Associated Behavior seçmektir. Reddedilen istekler için özel bir yanıta ihtiyacınız yoksa varsayılan davranışı seçin. Davranış parametreleri ve oluşturma adımları için bkz. Davranışları yönetin.

Önemli

Arayüz düzeyinde hız sınırlama kuralları, eşzamanlılık yalıtımı kuralları ve kritik nokta parametre koruma kuralları için Whether to open varsayılan olarak kapalıdır. Bu kurallar yalnızca bu anahtarı açtığınızda etkinleşir.

Arayüz düzeyinde hız sınırlama kurallarını yapılandırın

Arayüz düzeyinde bir hız sınırlama kuralı, bir uygulamanın veya hizmetin saniyedeki sorgu sayısını (QPS) izler. QPS belirtilen eşik değere ulaştığında kural trafiği anında engeller. Bu durum, ani trafik artışlarının uygulamayı aşırı yüklemesini önler ve yüksek kullanılabilirliği (HA) sağlar.

  1. Interface-level Throttling sekmesine tıklayın ve Create Throttling Rule seçeneğine tıklayın.

  2. Create Throttling Rule iletişim kutusunda aşağıdaki sihirbazları tamamlayın:

    1. Select Protection Scenario sihirbazında API Type, Traffic Type ve API Name seçeneklerini belirleyin, ardından Next düğmesine tıklayın.

    2. Configure Protection Rule sihirbazında aşağıdaki tabloda açıklanan parametreleri yapılandırın ve Next düğmesine tıklayın.

    3. Configure Protection Behavior sihirbazında bir Associated Behavior seçin ve Create düğmesine tıklayın.

    Aşağıdaki tabloda Configure Protection Rule sihirbazındaki parametreler açıklanmaktadır.


Yapılandırma öğesi


Açıklama


Whether to open


Bu anahtarı açarsanız kural oluşturulduktan hemen sonra etkinleşir. Anahtar varsayılan olarak kapalıdır.


Per-instance QPS threshold


Hızı sınırlandırılan API'nin istatistiksel boyutundaki nesnenin QPS eşik değeri.


Flow control effect


Hızı sınırlandırılan trafiğin nasıl işleneceğini seçin. Fast failure: Eşik değere ulaşıldığında istekler anında engellenir. Yanıt içeriği, uygulamanın sistem ayarlarındaki bağdaştırıcı modülü ayarları tarafından belirlenir. Waiting in line: İstekler sabit bir hızda geçer ve aşırı istekler kuyruğa alınır. Bu yöntem genellikle zirve yük kaydırma için kullanılır. Bir zaman aşımı süresi ayarlamanız gerekir. Bir istek zaman aşımı süresine ulaştığında hızlı bir şekilde başarısız olur.

Kural, düzenleyebileceğiniz veya silebileceğiniz Interface-level Throttling sekmesinde görünür.

Örnek: Trafiğin sabit bir hızda geçmesi için zirve yükleri kaydırın

İstek trafiğinde dalgalanmalar yaşanır. Hız sınırlama, istekleri kuyruğa alarak zirve trafiğini geciktirir ve istekleri daha sonra işler. Bu yaklaşım mümkün olduğunca çok isteğe hizmet edilmesini ve kullanıcı deneyiminin korunmasını sağlar. Hız sınırlama kuralını aşağıdaki ayarlarla yapılandırın:

  • Sabit hız modu için Stand-alone QPS threshold değerini 5 olarak ayarlayın.

  • Flow control effect değerini Waiting in line olarak ayarlayın.

  • Timeout değerini 5 saniye olarak ayarlayın.

    Sistem her 200 milisaniyede bir isteği işler ve aşırı görevleri kuyruğa alır. Bekleme süresi 5 saniye olduğu için, tahmini kuyruk bekleme süresi 5 saniyeyi aşan bir görev hızlı bir şekilde başarısız olur ve varsayılan hız sınırlama yanıtını (örneğin bir metin mesajı veya statik bir sayfa) doğrudan döndürür.

Eşzamanlılık yalıtımı kurallarını yapılandırın

Eşzamanlılık yalıtımı kuralı, sistem kararlığını korumak amacıyla bir API'nin veya bağımlılıklarının eşzamanlı iş parçacığı sayısını kontrol eder.

  1. Concurrency Isolation sekmesine tıklayın ve Create Isolation Rule seçeneğine tıklayın.

  2. Create Isolation Rule iletişim kutusunda aşağıdaki sihirbazları tamamlayın:

    1. Select Protection Scenario sihirbazında API Type, Traffic Type ve API Name seçeneklerini belirleyin, ardından Next düğmesine tıklayın.

    2. Configure Protection Rule sihirbazında aşağıdaki tabloda açıklanan parametreleri yapılandırın ve Next düğmesine tıklayın.

    3. Configure Protection Behavior sihirbazında bir Associated Behavior seçin ve Create düğmesine tıklayın.

    Aşağıdaki tabloda Configure Protection Rule sihirbazındaki parametreler açıklanmaktadır.


Yapılandırma öğesi


Açıklama


Whether to open


Bu anahtarı açarsanız kural oluşturulduktan hemen sonra etkinleşir. Anahtar varsayılan olarak kapalıdır.


Concurrency threshold


Kaynağın eşzamanlı iş parçacığı sayısı eşiği; yani kaynak için çalışan iş parçacığı sayısı.

Kural, düzenleyebileceğiniz veya silebileceğiniz Concurrency Isolation sekmesinde görünür.

Örnek: Uygulamanız için yeterli kaynak sağlayın

Bir isteğin yanıt süresi arttığında eşzamanlı iş parçacığı sayısı da artar. Eşzamanlılık eşik değeri aştığında sistem, biriken görevler tamamlanıp eşzamanlı iş parçacığı sayısı azalana kadar aşırı istekleri reddeder. Bu yaklaşım hataları yalıtır ve kararsızlığı azaltır.

Örneğin, bir SQL deyiminin çalıştırılması 20 milisaniye sürer ve bu istek için saniyede 20 istek beklenir. Yalıtım kuralını aşağıdaki ayarlarla yapılandırın:

  • Interface Name değerini girin.

  • Concurrency threshold değerini 10 olarak ayarlayın.

    Bu yapılandırmadan sonra, SQL deyimi bir kilitlenme veya performans sorunuyla karşılaşıp yavaş bir SQL deyimine dönüşse bile, istekler gelmeye devam etse de yalnızca 10 iş parçacığı kullanır. Kısa sürede çıkamayan sürekli istekler bu nedenle sürecin aktif iş parçacıklarını tüketemez. SQL deyimi normale döndüğünde eşzamanlılık hızla azalır. Eşzamanlılık önceden ayarlanmış eşiğin altına düştüğünde sistem istekleri reddetmeyi durdurur ve uygulamanın işleme kapasitesi hızla toparlanır. Bu yöntem, yanıt süresine göre kapasiteyi otomatik olarak ayarlar ve dengesiz uygulamaları yalıtır.

Devre kesme kurallarını yapılandırın

Bir devre kesme kuralı, uygulamanızın veya aşağı akış bağımlılıklarının yanıt süresini ya da hata oranını izler. Belirtilen eşik değere ulaşıldığında sistem, aşağı akış bağımlılığının önceliğini anında düşürür. Belirtilen süre boyunca sistem dengesiz kaynağı çağırmaz. Bu durum, uygulamanın dengesiz bir durumda çalışmasını önler ve yüksek kullanılabilirliği sağlar. Belirtilen süre dolduktan sonra sistem kaynağı yeniden çağırır.

  1. Circuit Breaking Rules sekmesine tıklayın ve Create Circuit Breaking Rule seçeneğine tıklayın.

  2. Create Circuit Breaking Rule iletişim kutusunda aşağıdaki sihirbazları tamamlayın:

    1. Select Protection Scenario sihirbazında API Type ve API Name seçeneklerini belirleyin, ardından Next düğmesine tıklayın.

    2. Configure Protection Rule sihirbazında aşağıdaki tabloda açıklanan parametreleri yapılandırın ve Create düğmesine tıklayın.

    Aşağıdaki tabloda Configure Protection Rule sihirbazındaki parametreler açıklanmaktadır.


Yapılandırma öğesi


Açıklama


Statistical window duration


İstatistikler için zaman penceresinin uzunluğu. Geçerli değerler: 1 saniye ila 120 dakika.


Minimum number of requests


Devre kesmeyi tetikleyen minimum istek sayısı. Mevcut istatistik zaman penceresindeki istek sayısı bu değerden azsa, devre kesme koşulu karşılanmış olsa bile kural tetiklenmez.


Threshold Type


Eşik olarak Slow call ratio (%) veya Abnormal proportion (%) seçeneğini belirleyin. Eşik olarak Slow call ratio seçerseniz, maksimum yanıt süresi olan izin verilen Slow call RT değerini belirtmeniz gerekir. Yanıt süresi bu değerden büyük olan bir istek yavaş çağrı olarak sayılır. Circuit Breaking Ratio Threshold alanında devre kesmeyi tetikleyen yavaş çağrı oranını ayarlayın. Kural etkinleştirildikten sonra, bir istatistik zaman penceresindeki istek sayısı Minimum number of requests değerinden büyükse ve yavaş çağrı oranı eşik değerden fazlaysa, sonraki istekler Circuit Breaking Duration (s) süresi boyunca otomatik olarak engellenir. Devre kesme süresi dolduktan sonra devre kesici prob kurtarma durumuna geçer. Bir sonraki isteğin yanıt süresi belirtilen Slow call RT değerinden azsa devre kesme işlemi sona erer. Yanıt süresi belirtilen Slow call RT değerinden büyükse devre kesme işlemi tekrar tetiklenir. Eşik olarak Abnormal proportion seçerseniz, Circuit Breaking Ratio Threshold alanında devre kesmeyi tetikleyen hata oranını ayarlamanız gerekir. Kural etkinleştirildikten sonra, bir istatistik zaman penceresindeki iş hatası sayısı Minimum number of requests değerinden büyükse ve hata oranı eşik değerden fazlaysa, sonraki istekler Circuit Breaking Duration (s) süresi boyunca otomatik olarak engellenir.


Circuit Breaking Duration (s)


Bu parametreyi yapılandırmak için Show Advanced Options seçeneğine tıklayın. Devre kesme tetiklendikten sonra devam edeceği süre. Bir kaynak devre kesme durumuna girdiğinde, belirtilen devre kesme süresi içinde istekler hızlı bir şekilde başarısız olur.


Circuit Breaking Policy


Bu parametreyi yapılandırmak için Show Advanced Options seçeneğine tıklayın. Devre kesicinin kurtarma aşamasına (yarı açık durum) girdiğinde kullandığı kurtarma politikası. Single detection recovery: Devre kesme süresi dolduktan sonra devre kesici bir sonraki isteği prob olarak gönderir. İstek beklentileri karşılarsa (yani yavaş bir çağrı veya hata değilse) devre kesme işlemi sona erer. Aksi takdirde devre kesici devre kesme aşamasına geri döner. Progressive recovery: Number of recovery phases ve Minimum number of passes per step değerlerini ayarlamanız gerekir. Devre kesme süresi dolduktan sonra devre kesici, belirtilen kurtarma aşaması sayısına göre kademeli olarak kurtarır. Bir aşamadaki istek sayısı adım başına minimum geçiş sayısına ulaşırsa bir kontrol tetiklenir. Kontrol edilen isteklerin hiçbiri eşik değeri aşmazsa sistem, trafiğin tamamen kurtarılmasına kadar geçen isteklerin oranını kademeli olarak artırır. Adımlardan birindeki bir ölçüm eşik değeri aşarsa devre kesici devre kesme aşamasına geri döner. İstek oranı T = 100/N şeklindedir; burada N kurtarma aşaması sayısıdır. İlk aşamadaki oran T, ikinci aşamadaki oran 2T'dir ve oran %100'e ulaşana kadar bu şekilde devam eder. Örneğin, kurtarma aşaması sayısı 3 ve adım başına minimum geçiş sayısı 5 ise istekler üç aşamada sırasıyla %33, %67 ve %100 oranlarında geçişe izin verilir. Bir aşamadaki istek sayısı 5'e eşit veya büyük olduğunda bir kontrol gerçekleştirilir. İstek ölçümleri eşik değeri aşmazsa devre kesici, trafik tamamen kurtarılana kadar bir sonraki kurtarma aşamasına geçer.

Kural, düzenleyebileceğiniz veya silebileceğiniz Circuit Breaking Rules sekmesinde görünür.

Örnek: Yavaş çağrılarda veya hatalarda devre kesmeyi tetikleyin

Üçüncü taraf bir hizmete yapılan bir çağrının yanıt vermesi çok yavaş olduğunda ve mevcut API'yi etkilediğinde veya sisteminiz üçüncü taraf içeriği görüntülerken hata döndürdüğünde devre kesme uygulayın. Her iki durum da aynı kural türünü kullanır ve yalnızca seçtiğiniz Threshold Type açısından farklılık gösterir.


Yapılandırma öğesi


Örnek: yavaş çağrılar


Örnek: hatalar


Interface Name


test


test


Statistical window duration


1


1


Minimum number of requests


10


10


Threshold Type


Slow call ratio


Abnormal proportion


Slow call RT


1000


Gerekli değil


Circuit Breaking Ratio Threshold


%80


%80


Circuit Breaking Duration (s)


10


10


Circuit Breaking Policy


Single detection recovery


Single detection recovery

Her iki yapılandırmada da istatistik zaman penceresi 1 saniyedir, pencerede en az 10 istek olmadıkça kural tetiklenmez ve devre kesme 10 saniye sürer. Yavaş çağrı örneğinde, 1000 milisaniyeden fazla süren bir istek yavaş istek olarak kabul edilir ve devre kesmeyi tetikleyen yavaş çağrı oranı %80'dir. Hata örneğinde, devre kesmeyi tetikleyen hata oranı %80'dir.

Kritik nokta parametre koruma kurallarını yapılandırın (RPC)

Bir uygulama için kritik nokta kurallarını yapılandırdıktan sonra sistem, kaynak çağrıları sırasında sıkça çağrılan parametreler olan istatistiksel parametreleri analiz eder. Sistem, kritik nokta kurallarına dayanarak kritik nokta parametreleri içeren kaynak çağrılarının hızını sınırlayarak sistem kararlığını korur. Bu kural türünü, kritik nokta parametresinin enstrümantasyon noktasındaki dizin konumuyla tanımlandığı RPC kaynak çağrıları için kullanın.

  1. Hotspot Parameter Protection (RPC) sekmesine tıklayın ve Create Hotspot Parameter Protection Rule (RPC) seçeneğine tıklayın.

  2. Create Hotspot Parameter Protection Rule (RPC) iletişim kutusunda aşağıdaki sihirbazları tamamlayın:

    1. Select Protection Scenario sihirbazında API Name seçeneğini belirleyin ve Next düğmesine tıklayın.

    2. Configure Protection Rule sihirbazında aşağıdaki tabloda açıklanan parametreleri yapılandırın ve Next düğmesine tıklayın.

    3. Configure Protection Behavior sihirbazında bir Associated Behavior seçin ve Create düğmesine tıklayın.

    Aşağıdaki tabloda Configure Protection Rule sihirbazındaki parametreler açıklanmaktadır.


Yapılandırma öğesi


Açıklama


Parameter position Index


Enstrümantasyon noktası kaynağında geçirilen parametrenin dizin konumu. Bu, SphU.entry(xxx,args) içindeki parametre dizin konumuna karşılık gelir. Örneğin, SphU.entry(resourceName,Entry Type.IN,1,paramA,paramB) enstrümantasyon noktasında paramA parametre dizini 0'dır ve paramB parametre dizini 1'dir.


Statistical dimension


İstek sayısını veya eşzamanlı iş parçacığı sayısını ölçebilirsiniz. Number of requests: Belirli bir süre içindeki çağrı sayısını sınırlar. Concurrent number: Kaynağa yapılan eşzamanlı çağrı sayısını sınırlar.


Statistical cycle time


Saniye cinsinden istatistik zaman penceresinin uzunluğu. Örneğin, istatistik zaman penceresi 10 saniye ve QPS eşiği 5 ise her kritik nokta parametresine 10 saniye içinde en fazla 5 kez erişilebilir.


Single machine threshold


Her kritik nokta parametresi için geçerli olan eşik değeri.


Flow control effect


Statistical dimension değeri Number of requests olarak ayarlandığında hızı sınırlandırılan trafiğin nasıl işleneceğini seçebilirsiniz. Fast failure: Eşik değere ulaşıldığında istekler anında engellenir. Bu modda ayrıca trafik patlamaları için izin verilen ekstra istek sayısı olan Number of buffered requests değerini de ayarlayabilirsiniz. Waiting in line: İstekler sabit bir hızda geçer ve aşırı istekler kuyruğa alınır. Bu yöntem genellikle zirve yük kaydırma için kullanılır. Bir zaman aşımı süresi ayarlamanız gerekir. Bir istek kuyruğa alındığında sistem tahmini kuyruk bekleme süresini hesaplar. Tahmini kuyruk bekleme süresi maksimum zaman aşımı süresini aşarsa istek reddedilir. Örneğin, Single machine threshold değeri 5 olarak ayarlanırsa her 200 milisaniyede yalnızca bir istek geçer ve aşırı istekler kuyruğa alınır. Timeout değeri 1000 milisaniye olarak ayarlanırsa, 5'ten fazla istek zaten kuyruktaysa (bu da 1000 milisaniyeden fazla bir kuyruk bekleme süresine karşılık gelir) yeni istekler reddedilir.


Whether to open


Bu anahtarı açarsanız kural oluşturulduktan hemen sonra etkinleşir. Anahtar varsayılan olarak kapalıdır.

Kural, düzenleyebileceğiniz veya silebileceğiniz Hotspot Parameter Protection (RPC) sekmesinde görünür.

Örnek: Ani satış sırasında kritik nokta ürün için istekleri kuyruğa alın

Ani satışlar ve diğer yoğun satın alma etkinlikleri sırasında yüksek trafik sistem yanıtlarını yavaşlatabilir veya hatta sistemin çökmesine neden olabilir. Sistem kararlığını korumak amacıyla, trafik bir eşiği aştıktan sonra popüler ürünler için trafiği kuyruğa alacak şekilde bir kritik nokta kuralı yapılandırabilirsiniz. Bu örnekte aşırı istekler reddedilmek yerine bir RPC API'si için kuyruğa alınır: Aynı ürüne yönelik istekler 1 saniye içinde 100'ü aşarsa kalan istekler kuyruğa alınır.

  • Interface Name değerini girin.

  • Statistical dimension değerini Number of requests olarak ayarlayın.

  • Statistical cycle time değerini 1 saniye ve Single machine threshold değerini 100 olarak ayarlayın.

  • Flow control effect değerini Waiting in line olarak ayarlayın.

  • Timeout değerini 30 milisaniye olarak ayarlayın.

    Bu API 1 saniye içinde 100'den fazla kez çağrılırsa aşırı istekler kuyruğa alınır. 30 milisaniyeden daha uzun süre bekleyen bir istek anında başarısız olur.

Örnek: Aşırı sistem kaynağı tüketen sık çağrıları sınırlayın

Ani bir satış sırasında müşterilerin bazen siparişin teslimat adresini değiştirmesi gerekebilir. Bu tür çok sayıda değiştirme isteği önemli veritabanı yazma kaynaklarını tüketir. Müşterilerin değişikliği daha sonra yapması için aynı kritik nokta parametresini taşıyan eşzamanlı çağrıları sınırlayabilirsiniz.

  • Interface Name değerini girin.

  • Statistical dimension değerini Concurrent number olarak ayarlayın.

  • Statistical cycle time değerini 1 saniye ve Single machine threshold değerini 100 olarak ayarlayın.

    Bu yapılandırma, her kritik nokta parametresi için en fazla 100 eşzamanlı çağrıya izin verir. Aşırı istekler reddedilir.

Kritik nokta parametre koruma kurallarını yapılandırın (HTTP isteği)

HTTP istekleri için kritik nokta parametre koruma kuralları, web hizmetleri sağlayan uygulamalara uygulanır. Bu kurallar, erişim isteklerindeki belirli parametrelerde granüler trafik şekillendirme gerçekleştirir. İş ve sistem kararlığını korumak amacıyla IP adresi, Host, Header ve URL Param gibi istek boyutlarına dayalı olarak kaynak çağrıları için trafiği şekillendirebilirsiniz.

  1. Hotspot Parameter Protection (HTTP Request) sekmesine tıklayın ve Create Hotspot Parameter Protection Rule (HTTP Request) seçeneğine tıklayın.

  2. Create Hotspot Parameter Protection Rule (HTTP Request) iletişim kutusunda aşağıdaki sihirbazları tamamlayın:

    1. Select Protection Scenario sihirbazında API Name seçeneğini belirleyin ve Next düğmesine tıklayın.

    2. Configure Protection Rule sihirbazında aşağıdaki tabloda açıklanan parametreleri yapılandırın ve Next düğmesine tıklayın.

    3. Configure Protection Behavior sihirbazında bir Associated Behavior seçin ve Create düğmesine tıklayın.

    Aşağıdaki tabloda Configure Protection Rule sihirbazındaki parametreler açıklanmaktadır.


Yapılandırma öğesi


Açıklama


Parameter Properties


Seçilen API'nin parametre özelliklerine göre trafiği şekillendirir. Client IP: İstemcinin IP adresi. Bir istek bir proxy üzerinden geçerse sistem önce IP adresini X-Forwarded-For istek üstbilgisinden almaya çalışır. Bu üstbilgi IP bilgisi içeriyorsa sistem bu IP adresini gerçek istemci IP adresi olarak kullanır. Remote Host: İstemcinin Host üstbilgisi. Header: Sistem isteği belirtilen HTTP üstbilgisine göre ayrıştırır. Belirli bir üstbilgi anahtarı girerseniz kural o üstbilgi anahtarı altındaki her kritik nokta değerini ayrı ayrı sınırlar. Header seçtikten sonra istek özelliği değerleri için bir eşleşme politikası yapılandırabilirsiniz. Yalnızca desenle eşleşen istek özelliği değerleri istatistiklere ve hız sınırlamaya dahil edilir. URL parameter: Sistem isteği belirtilen HTTP istek parametresine göre ayrıştırır. Parametrenin adını girmeniz gerekir. URL parameter seçtikten sonra istek özelliği değerleri için bir eşleşme politikası yapılandırabilirsiniz. Yalnızca desenle eşleşen istek özelliği değerleri istatistiklere ve hız sınırlamaya dahil edilir.


Threshold Type


Varsayılan değer Request count'tir.


Threshold


Hızı sınırlandırılan API'nin istatistiksel boyutundaki nesnenin QPS eşik değeri. Eşiği ayarlarken bir istatistik aralığı seçmeniz gerekir. Desteklenen aralıklar saniye, dakika, saat ve gündür. Örneğin, eşiği 10 olarak ayarlar ve aralık olarak minute seçerseniz dakikada en fazla 10 isteğe izin verilir.


Whether to open


Bu anahtarı açarsanız kural oluşturulduktan hemen sonra etkinleşir. Anahtar varsayılan olarak kapalıdır.


Throttling method


Bu parametreyi yapılandırmak için Show Advanced Options seçeneğine tıklayın. Fast failure: Eşik türü QPS ise hızı sınırlandırılan trafik hızlı bir şekilde başarısız olur; yani eşik değere ulaşıldığında istekler anında engellenir. Reddedilen istekler, davranış yönetiminde yapılandırılan özel yanıtı alır. Özel bir yanıt yapılandırılmadıysa varsayılan davranış uygulanır ve 429 hata kodu ile varsayılan metin mesajı döndürülür. Waiting in line: Eşik türü QPS ise hızı sınırlandırılan istekler sabit bir hızda geçer ve kuyruğa alınmasına izin verilir. Bir zaman aşımı süresi ayarlamanız gerekir. Zaman aşımı süresine ulaşması beklenen bir istek kuyruğa alınmak yerine anında başarısız olur. Örneğin, QPS 10 olarak ayarlanırsa her 100 milisaniyede yalnızca bir istek geçer ve aşırı istekler kuyruğa alınır. Zaman aşımı süresi maksimum kuyruk bekleme süresidir. Maksimum kuyruk bekleme süresini aşan istekler reddedilir. İstekler kuyruğa alındığında geçerli olan QPS sınırı için bkz. Sınırlamalar.


Burst size


Bu parametreyi yapılandırmak için Show Advanced Options seçeneğine tıklayın. Throttling method değeri Fast failure olarak ayarlandığında trafik patlamaları için izin verilen ekstra istek sayısı olan bir patlama boyutu ayarlayabilirsiniz.


Timeout


Bu parametreyi yapılandırmak için Show Advanced Options seçeneğine tıklayın. Throttling method değeri Waiting in line olarak ayarlandığında milisaniye cinsinden bir zaman aşımı süresi ayarlamanız gerekir. Örneğin, QPS 5 olarak ayarlanırsa her 200 milisaniyede yalnızca bir istek geçer ve aşırı istekler kuyruğa alınır. Zaman aşımı süresi maksimum kuyruk bekleme süresidir. Maksimum kuyruk bekleme süresini aşan istekler reddedilir.

Kural, düzenleyebileceğiniz veya silebileceğiniz Hotspot Parameter Protection (HTTP Request) sekmesinde görünür.

Örnek: Kritik nokta ürününün ani satışı

Ani satışlar ve diğer yoğun satın alma etkinlikleri sırasında yüksek trafik sistem yanıtlarını yavaşlatabilir veya hatta sistemin çökmesine neden olabilir. Sistem kararlığını korumak amacıyla, trafik bir eşiği aştıktan sonra popüler ürünler için aşırı trafiği reddedecek şekilde bir kritik nokta parametre koruma kuralı yapılandırabilirsiniz. Bu örnek bir HTTP API'si için geçerlidir ve aşırı istekleri kuyruğa almak yerine reddeder.

Örneğin, aynı ürün için istekler 1 saniye içinde 100'ü aştıktan sonra aşırı istekleri reddetmek için aşağıdaki parametreleri yapılandırın. Bu kural, her bir ürün kimliği için saniyede en fazla 100 sipariş isteğine izin verir ve o ürün için aşırı sipariş isteklerini özel bir yanıtla reddeder.

  • Parameter Properties değerini URL parameter olarak ayarlayın.

  • URL parameter name için stockId değerini girin.

  • Threshold için saniyede 100 istek girin.

  • Throttling method değerini Fast failure olarak ayarlayın.

Not

Parametre özelliklerinde kritik nokta ürününün kimliğine karşılık gelen parametre alanını seçin. Örneğin, URL parametrelerindeki bir stockId alanı istenen ürün kimliğini taşıyorsa parametre özelliğini URL parametresi olarak ayarlayabilir ve istekteki özelliğin alan adını parametre adı olarak girebilirsiniz.

Örnek: Kötü niyetli siparişleri önleyin

Bir promosyon etkinliği sırasında çok sayıda kötü niyetli sipariş isteği ürün envanterini veya sunucu kaynaklarını işgal eder. Bu durumda erişim isteklerinin sabit bir hızda geçmesini sağlamak için istekleri kaynak IP adreslerine göre kuyruğa alabilirsiniz. Bu durum, aşırı isteklerin hizmet kararlığını etkilemesini önler. Aşağıdaki kuralı yapılandırın:

  • Parameter Properties değerini Client IP olarak ayarlayın.

  • Threshold Type için varsayılan değer Request count'u koruyun.

  • Threshold için saniyede 100 istek girin.

  • Throttling method değerini Waiting in line olarak ayarlayın.

  • Timeout için 30 milisaniye girin.

  • Whether to open anahtarını açın.

    Bu kural ile her kaynak IP adresinden gelen istekler 10 milisaniyede bir istek hızında geçer (1 saniye/100 = 10 milisaniye) ve aşırı istekler kuyruğa alınır. 30 milisaniyeden daha uzun süre bekleyen kuyruktaki bir istek anında başarısız olur.

Davranışları yönetin

Bir web davranışı, bir web enstrümantasyon noktası kaynağında bir kural tetiklendikten sonra özel bir yanıt döndürür. Örneğin, bir web API'si bir hız sınırlama kuralını tetikledikten sonra Blocked by Sentinel mesajını döndürebilir.

Bir davranış oluşturun

  1. Behavior Management sekmesine tıklayın ve Create Behavior seçeneğine tıklayın.

  2. Create Behavior iletişim kutusunda aşağıdaki tablolarda açıklanan parametreleri yapılandırın ve Create düğmesine tıklayın.

    Aşağıdaki tabloda Resource Type değeri Web olarak ayarlandığında geçerli olan parametreler açıklanmaktadır.


Parametre


Açıklama


Örnek değer


Behavior Name


Davranışın adı. Ad en fazla 128 karakter uzunluğunda olabilir ve uygulama içinde benzersiz olmalıdır.


Test behavior


Resource Type


Web seçeneğini belirleyin.


Web


**Web throttling handler Web Throttling Policy


Bir web API'sine erişim bir kuralı tetiklediğinde sistemin nasıl davranacağını tanımlar. Custom response: HTTP durum kodunu, döndürülen içeriğin biçimini ve döndürülen içeriği ayarlamanız gerekir. Web API'sine erişim bir kuralı tetiklediğinde web API'si özel içeriği döndürür.


Custom response


HTTP Status Code


Varsayılan değer 429'dur. Bu parametre, Web throttling handler değeri Custom response olarak ayarlandığında gereklidir.


429


Returned Content-Type


Döndürülen içeriğin biçimini Plain text veya JSON olarak ayarlayın.


JSON string


Returned HTTP Text


Web API'sine erişim bir kuralı tetiklediğinde döndürülen içeriği girin. Bu parametre, Web throttling handler değeri Custom response olarak ayarlandığında gereklidir.


{"message": "blocked oops"}

Aşağıdaki tabloda Resource Type değeri RPC olarak ayarlandığında geçerli olan parametreler açıklanmaktadır.


Parametre


Açıklama


Örnek değer


Behavior Name


Davranışın adı. Ad en fazla 128 karakter uzunluğunda olabilir ve uygulama içinde benzersiz olmalıdır.


Test behavior


Resource Type


RPC seçeneğini belirleyin. Özel davranışları desteklemeyen Apache Dubbo sürümleri için bkz. Sınırlamalar.


Rpc


RPC throttling handler


Bir RPC API'sine erişim bir kuralı tetiklediğinde sistemin nasıl davranacağını tanımlar. Custom response: Özel bir sonuç döndürür. HTTP durum kodunu, döndürülen içeriğin biçimini ve döndürülen içeriği ayarlamanız gerekir. RPC API'sine erişim bir kuralı tetiklediğinde RPC API'si özel içeriği döndürür. Custom exception: Özel bir özel durum oluşturur. Özel durum sınıfı adını ve özel durum metnini ayarlamanız gerekir. RPC API'sine erişim bir kuralı tetiklendiğinde sistem belirtilen özel durum bilgilerini döndürür.


Custom response/Custom exception


Custom response class name


RPC throttling handler değeri Custom response olarak ayarlandığında gereklidir. Sınıf adının yolunu girin. Özel bir yanıtın desteklemediği nesne türleri için bkz. Sınırlamalar.


com.alibaba.demo.OrderService:getOrder(long)


Custom response content (JSON)


RPC throttling handler değeri Custom response olarak ayarlandığında gereklidir. RPC API'sine erişim bir kuralı tetiklendiğinde döndürülen nesne içeriğini girin.


{"id": "123", "name": "test"}


Exception class name


RPC throttling handler değeri Custom exception olarak ayarlandığında gereklidir. Özel durum sınıfı adının yolunu girin.


java.lang.RuntimeException


Exception message


RPC throttling handler değeri Custom exception olarak ayarlandığında gereklidir. RPC API'sine erişim bir kuralı tetiklendiğinde oluşturulan özel özel durumun metnini girin.


"Operation failed"

Oluşturduğunuz davranış, değiştirebileceğiniz veya silebileceğiniz Behavior Management sekmesinde görünür.

Bir davranışı mevcut bir kuralla ilişkilendirin

Bir davranış, kuralı oluştururken Configure Protection Behavior sihirbazında bir kural ile ilişkilendirilir. Zaten var olan bir kuralın davranışını değiştirmek için kuralı düzenleyin.

  1. Traffic Protection sekmesine tıklayın ve ardından kural türünün sekmesine tıklayın.

  2. Kuralı bulun ve Actions sütununda Edit seçeneğine tıklayın.

  3. Select Protection Scenario ve Configure Protection Rule sihirbazlarını tamamlayın.

  4. Configure Protection Behavior sihirbazında Associated Behavior açılır listesinden davranışı seçin. Alternatif olarak, bir davranış oluşturup kural ile ilişkilendirmek için Create Behavior seçeneğine tıklayın.

  5. Save düğmesine tıklayın.

    Bir davranışı ilişkilendirmeden önce aşağıdaki noktaları dikkate alın:

  • Default behavior — Hızı sınırlandırılan istekler için özel bir geri dönüş davranışına ihtiyacınız yoksa varsayılan davranışı seçin. Varsayılan davranışın API türü boştur.

  • Existing binding — Bir kural oluştururken bir davranış zaten API ile bağlıysa yeni davranış API'nin mevcut davranışının üzerine yazar.

  • API type — Bir davranış seçerken bir API türü seçmezseniz varsayılan davranış bağlanır. Bir API türü seçip ilgili türdeki bir davranışı bağladıktan sonra türü değiştiremezsiniz.