Ana içeriğe atla
Bu senaryoda Apinizer üzerinde oluşturulan Mock API’ye API Based Throttling politikasının uygulanması test edilecektir. Servisler için throttling kullanmak aşırı yüklenmeyi önlemeyerek istek miktarını sınırlama yöntemidir. Senaryoda, gelen istekleri 5 dakikalık eşit zaman aralıklarına bölerek her 5 dakikada yalnızca 10 isteğin kabul edilmesini sağlayabiliriz. Mock api örneği oluşturup politikayı ekleyelim. Generate JWK Ekranı Politika olarak API Based Throttling ekliyoruz. Generate JWK Ekranı Senaryoda, gelen istekleri Fixed Window (Sabit Pencere) yöntemiyle 5 dakikada 10 istekle sınırlayalım.
  • Eğer periyot 5 dakika olarak ayarlanmışsa ve örneğin politika saat 12:00:00’da kaydedildiyse:
  • 12:00:00 ile 12:04:59 arasındaki istekler aynı pencerede sayılır.
  • 12:05:00’da yeni bir pencere başlar ve sayaç sıfırlanır.
Generate JWK Ekranı Test konsolundan örnek istek attığımızda, mevcut zamanda saat 14:00:00 ve 14:04:59 zaman aralığında 10. istek sonrasında kısıtlama sınırına ulaşıldığı için, mesaj engellendi. Generate JWK Ekranı

Target-Specific Throttling Rules (Hedefe Özel Throttling Kuralları)

Bu özellik sayesinde belirli kullanıcılar veya hedefler için özel throttling sınırlamaları tanımlayabilirsiniz. Politika olarak API Based Throttling ekliyoruz. Generate JWK Ekranı
  • Target-Specific Throttling Rules (Hedefe Özel Throttling Kuralları) kullanarak kullanıcı bazlı (header, body veya başka bir alana göre) özel kota sınırları belirlenebilmektedir. Genel politikada gelen istekleri Fixed Window (Sabit Pencere) yöntemiyle 5 dakika için 100 istekle sınırlarken, aynı zamanda user1 kullanıcısı için 5 dakikada maksimum 5 istek limiti tanımlanabilmektedir.
  • Fixed Window yönteminde eğer periyot 5 olarak ayarlanmışsa ve dakika seçilmişse:
  • Örneğin, politika saat 12:00:00’de kaydedildiyse, bu politika bulunduğunuz gün içinde saat 12:00:00 ile 12:04:59 arasında geçerli olacaktır ve bu süre içinde genel kural olarak 100 istek yapılabilir.
  • Target-Specific Quota Rules ile tanımladığımız user1 kullanıcısı için ise dakika bazında bir limit belirlenmiştir. Eğer bir 5 dakikalık dilim 12:00:00’da başlıyorsa, bu 12:00:00 ile 12:04:59 arasındaki süreyi kapsar ve user1 kullanıcısı bu zaman aralığında en fazla 5 istek yapabilir. Sonraki 5 dakikalık dilimde (12:05:00) sayaç sıfırlanır.
  • Bir sonraki 5 dakikalık dilimde (örneğin 12:05:00 ile 12:09:59 arasında) genel politika için yeni bir 100 istek hakkı tanımlanırken, user1 kullanıcısı için de yeniden 5 istek hakkı tanımlanacaktır.
Generate JWK Ekranı Test konsolundan örnek istek attığımızda, username Header’ından user1 kullanıcısı ile istek attığımızda mevcut saatte 12:00:00 ile 12:04:59 zaman aralığında 5. istek sonrasında kısıtlama sınırına ulaşıldığı için, mesaj engellendi. Generate JWK Ekranı