Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Service Mesh:Throttling

Son Güncelleme:Oct 07, 2026

Throttling, trafik patlamaları, hizmet aşırı yüklenmesi, kaynak tükenmesi ve kötü amaçlı saldırılarla başa çıkmak için hassas trafik kontrolü sağlar. Bu sayede arka uç hizmetlerinin kararlılığını korurken maliyetleri azaltır ve kullanıcı deneyimini iyileştirir.

Throttling kavramları

Throttling, belirli bir zaman dilimi içinde bir hizmete gönderilen istek sayısını sınırlar (örneğin dakikada 300 istek veya saniyede 10 istek). Bu yöntem, bir hizmetin belirli bir istemci IP adresinden veya küresel istemcilerden gelen aşırı istekler nedeniyle aşırı yüklenmesini önler.

Örneğin, bir hizmete gönderilen istek sayısını dakikada 300 ile sınırlarsanız 301. istek reddedilir. Aynı zamanda, aşırı isteği belirten HTTP 429 durum kodu döndürülür.

Throttling modları

Envoy proxy'leri yerel throttling ve global throttling olmak üzere iki throttling modunu destekler. Yerel throttling, her hizmet örneğinin istek hızını sınırlar. Global throttling ise tüm Service Mesh (ASM) örneği genelinde hız sınırlamalarını uygulamak için global bir gRPC hizmeti kullanır. Farklı throttling seviyeleri uygulamak üzere her iki modu birleştirebilirsiniz.

Mod

Açıklama

Başvurular

Yerel throttling

  • Yerel throttling, Envoy işlemi bazında yapılandırılır. Bir Envoy işlemi, Envoy proxy'nin enjekte edildiği bir pod'dur. Yerel throttling yapılandırması, global throttling yapılandırmasına göre daha basittir ve ek bir bileşen gerektirmez. Bir ASM örneği için hem yerel hem de global throttling yapılandırırsanız önce yerel hız sınırı uygulanır. Yerel hız sınırına ulaşılmamışsa global hız sınırı uygulanır. Örnekler:

    • Yerel throttling'in belirli bir istemciden gelen istek sayısını dakikada 50 ile sınırladığını, global throttling sınırının ise dakikada 60 istek olduğunu varsayalım. İstemciden gelen istek sayısı 50'yi aştığında, istek sayısı global throttling sınırına ulaşmamış olsa bile aşırı istekler reddedilir.

    • Yerel throttling'in belirli bir istemciden gelen istek sayısını dakikada 50 ile sınırladığını, global throttling sınırının ise dakikada 40 istek olduğunu varsayalım. İstemciden gelen istek sayısı 40'ı aştığında, istek sayısı yerel throttling sınırına ulaşmamış olsa bile aşırı istekler global throttling nedeniyle reddedilir.

  • Yerel throttling sınırının yapılandırıldığı pod'un birden fazla çoğaltması varsa bu çoğaltmaların her birinin kendi sınırı vardır. Yani istekler bir çoğaltmada sınırlanırken diğerinde sınırlanmayabilir.

Traffic Management Center'da yerel throttling yapılandırma

Global veya dağıtılmış throttling

  • Global throttling, birden çok hizmete gönderilen istek sayısını sınırlar. Bu modda bir kümedeki tüm hizmetler throttling yapılandırmasını paylaşır. Genel olarak global throttling, Redis veritabanı gibi harici bir bileşen gerektirir.

  • Global throttling genellikle birçok istemcinin daha az sayıda hizmete istek gönderdiği senaryolarda kullanılır. Bu durumda istekler hizmetleri kesintiye uğratabilir. Global throttling zincirleme hataları önlemeye yardımcı olabilir. Örneğin, bir ASM örneğine gönderilen toplam istek sayısını sınırlamak için giriş ağ geçidinde global throttling yapılandırabilirsiniz. Ardından ASM örneğindeki belirli hizmetlere gönderilen istek sayısını sınırlamak için yerel throttling yapılandırabilirsiniz.

Uygulama hizmetlerine gelen trafik için global hız sınırlaması yapılandırmak üzere ASMGlobalRateLimiter kullanma

Yerel throttling nasıl çalışır?

Bir Envoy proxy, yerel throttling'i uygulamak için token bucket algoritmasını kullanır. Paketlere sabit bir hızda token eklenir. Gelen her istek bir token tüketir. Paket boşaldığında sonraki istekler reddedilir. Genellikle aşağıdaki parametreleri belirtmeniz gerekir:

  • Paketin doldurulma aralığı

  • Her aralıkta pakete eklenen token sayısı

Varsayılan olarak bir Envoy proxy, bir istek reddedildiğinde HTTP 429 durum kodunu döndürür ve x-envoy-ratelimited üstbilgisi ayarlanır. HTTP durum kodunu ve yanıt üstbilgisini özelleştirebilirsiniz.

Throttling özelliğini kullanırken aşağıdaki kavramlara dikkat edin:

  • http_filter_enabled: Yerel hız sınırının kontrol edildiği ancak uygulanmadığı isteklerin yüzdesini gösterir.

  • http_filter_enforcing: Yerel hız sınırının uygulandığı veya zorlandığı isteklerin yüzdesini gösterir.

Değerleri yüzde olarak ayarlayın. Örneğin http_filter_enabled değerini isteklerin %10'una, http_filter_enforcing değerini ise isteklerin %5'ine ayarlayabilirsiniz. Bu şekilde throttling etkisini tüm isteklere uygulanmadan önce test edebilirsiniz.

Global throttling nasıl çalışır?

Global throttling, Envoy rate limit hizmetini kullanarak bir ASM örneği genelindeki istek oranlarını kontrol eder. Rate limit hizmeti trafiği merkezi olarak işler ve önceden tanımlanmış kurallara ve kotalara göre hız sınırlamalarını uygular.

image

Global throttling yapılandırması iki bölümden oluşur: Envoy rate_limits filtresi ve rate limit hizmeti yapılandırması.

  • rate_limits filtresi bir actions listesi içerir. Bir Envoy proxy, her isteği rate_limits filtresindeki her eylemle eşleştirmeye çalışır. Her eylem için bir tanımlayıcı oluşturulur. Bir tanımlayıcı, bir eyleme karşılık gelen tanımlayıcı girişlerinden oluşan bir kümeyi ifade eder. Her tanımlayıcı girişi, "descriptor-key-1": "descriptor-value-1" ve "descriptor-key-2": "descriptor-value-2" gibi bir anahtar-değer çiftidir. Daha fazla bilgi için bkz. config-http-filters-rate-limit.

  • Rate limit hizmeti yapılandırması, her istek için oluşturulan tanımlayıcı girişiyle eşleşir. Rate limit hizmeti yapılandırması, belirli bir tanımlayıcı girişi kümesi için hız sınırını belirtir. Rate limit hizmeti, isteklerin hızlarının sınırlanıp sınırlanmayacağını belirlemek için Redis önbelleği ile etkileşime girer ve throttling kararını Envoy proxy'ye gönderir.

rate_limits filtresi ve rate limit hizmeti birlikte global throttling'i uygular. Filtre, yapılandırılan eyleme dayalı bir tanımlayıcı oluşturur ve bunu rate limit hizmetine gönderir; hizmet de geçerli sınırı belirleyerek bir throttling yanıtı döndürür. Bu mekanizma, istek oranları üzerinde tam kontrol sağlamanıza olanak tanır ve arka uç hizmetlerini trafik patlamalarına karşı korur.