Alibaba Cloud Service Mesh (ASM) kümelerdeki tüm kuzey-güney ve doğu-batı trafiğini yönetir. Zaman aşımı, yeniden deneme, kısıtlama, devre kesme, kuyruğa alma, önceden ısıtma ve geri dönüş ilkelerini yapılandırarak dağıtık sistemlerinizin yüksek kullanılabilirliğini artırabilirsiniz.
Yetenek tanıtımı
Dağıtık sistemlerde trafik koruma ve planlama kararlılık için kritiktir. Herhangi bir trafik dalgalanması veya anormallik hizmet arızalarına, zincirleme etkilere veya kaynak tükenmesine neden olabilir.
Resilience4j gibi geleneksel çerçeveler uygulama düzeyinde kısıtlama ve devre kesme işlevleri sunar. Service Mesh bu yetenekleri kod değişikliği gerektirmeden ağ altyapısı düzeyinde sunarak düşük bağımlılık ve esnek yapılandırma imkânı sağlar.
ASM aşağıdaki yüksek kullanılabilirlik özelliklerini sunar:
Kısıtlama: sistemin aşırı yüklenmesini önleme
Kısıtlama, arka uç hizmetlerini aşırı yüke, kaynak tükenmesine veya kötü niyetli saldırılara karşı korumak için trafiği kontrol eder. Çok kiracılı senaryolarda, daha ayrıntılı trafik yönetimi ve adil kaynak tahsisi sağlamak amacıyla her kiracı için kısıtlama uygulayabilirsiniz.
ASM aşağıdaki kısıtlama ilkelerini sunar:
Yerel kısıtlama ve genel kısıtlama
Mesh proxy Envoy, kısıtlama için yerel kısıtlama ve genel kısıtlama olmak üzere iki yöntemi destekler.
Senaryolar
Yerel ve genel kısıtlama çoğu yaygın senaryoyu kapsar: kümedeki belirli bir hizmeti veya belirli ağ geçidi rotalarını kısıtlama ve istek eşleştirme kriterlerine göre ayrı hız sınırlama kotaları belirleme.
Genel kısıtlama: Birden fazla hizmette hız sınırlarını uygulamak için merkezi bir kısıtlama hizmeti ve bir Redis veritabanı kullanır.
Yerel kısıtlama: Yapılandırması daha basittir ve harici bileşenlere bağlı değildir ancak her çoğaltma kendi bağımsız hız sınırlayıcısını korur.
ASM trafik planlama paketine dayalı hız sınırlama
ASM trafik planlama paketi Service Mesh için birleşik bir trafik planlama mimarisidir ve cloud-native dağıtık uygulamalarda yük planlaması ve istek yönetimi için ilkeler sunar. Paket kısıtlama için RateLimitingPolicy desteği sağlar.
Senaryolar
RateLimitingPolicy istekleri etiketlere göre gruplandırmayı ve her grupta kısıtlama uygulamayı destekler; bu da çok kiracılı ortamlarda ayrıntılı kontrol için uygundur.
Trafik eşzamanlılık kontrolü: sistem kritik kaynaklarını koruma
Eşzamanlılık kontrolü, kaynak tükenmesini önlemek için eşzamanlı istek sayısını sınırlar. Kısıtlamadan farklı olarak thread havuzları veya veritabanları gibi kritik kaynaklara bağımlı hizmetleri hedefler.
ASM iki eşzamanlılık kontrol mekanizması sunar:
ASM trafik planlama paketine dayalı eşzamanlılık kontrolü
ASM trafik planlama paketi eşzamanlı istekleri kontrol etmek için ConcurrencyLimitingPolicy desteği sunar.
Senaryolar
Bir sistemin eşzamanlılık sınırı nispeten sabitse belirli bir hizmet için sabit bir sınır ayarlayabilirsiniz. Sınırı aşan istekler 429 yanıtı alır.
Uyarlamalı eşzamanlılık kontrolü için ASMAdaptiveConcurrency kullanma
Envoy uyarlamalı eşzamanlılık kontrolünü destekler ve bunu ASMAdaptiveConcurrency aracılığıyla etkinleştirebilirsiniz. ASMAdaptiveConcurrency eşzamanlılık sınırını hedef hizmet kapasitesine uyacak şekilde dinamik olarak ayarlar, fazla istekleri 503 yanıtı ve "reached concurrency limit" mesajıyla reddeder.
Senaryolar
Bir sistemin eşzamanlılık sınırı önemli ölçüde dalgalanıyorsa ve tahmin edilmesi zorsa eşzamanlılığı dinamik olarak sınırlamak için AdaptiveConcurrency kullanın. Reddedilen isteklerin başarılı bir şekilde yeniden denenmesini sağlamak için DestinationRule üzerinden yeniden denemeleri de etkinleştirmenizi öneririz.
Trafik devre kesme: zincirleme etkileri önlemek için hatalı düğümleri yalıtma
Devre kesme, hataları yalıtmak ve bunların sistem genelinde yayılmasını önlemek için hatalı hizmetlerin bağlantısını keser.
ASM çeşitli düzeylerde devre kesme sunar:
Bağlantı havuzu düzeyinde devre kesme
Bağlantı havuzu devre kesme destination rules üzerinden yapılandırılır ve hedef hizmet ana bilgisayarına yönelik maksimum HTTP/1 veya TCP bağlantı sayısını sınırlar.
Senaryolar
Bu strateji TCP bağlantılarını sınırlayarak devre kesmeyi tetikler ve HTTP durum kodlarının sorunları göstermediği hizmetler için geçerlidir.
Ana bilgisayar düzeyinde devre kesme
Ana bilgisayar düzeyinde devre kesme yine destination rules üzerinden yapılandırılır, bir zaman penceresindeki hataları izler ve hata oranı bir eşiği aştığında ana bilgisayarı çıkarır.
Senaryolar
Ana bilgisayar düzeyinde devre kesme her yukarı akış ana bilgisayarı için bağımsız olarak çalışır ve sürekli 5xx hataları veren ana bilgisayarları geçici olarak yük dengeleme havuzundan çıkarır. Tek bir iş yükü sorunundan kaynaklanan kalıcı hataları algılar ancak belirli API arayüzlerini hedeflemez.
Rota düzeyinde devre kesme
ASM hizmetler arasındaki doğu-batı trafiği ve belirli rotalar için devre kesme kurallarını yapılandırmayı destekler. Daha fazla bilgi için bkz. ilgili belge.
Senaryolar
Rota düzeyinde devre kesme hizmet düzeyinde çalışır ve hizmet bağımlılıkları veya mantık hatalarından kaynaklanan belirli API'lerdeki kalıcı hataları algılar.
Trafik geri dönüşü: çağrı hatası senaryolarını yönetme
Bir mikroservis başarısız olduğunda veya kullanılamaz hale geldiğinde geri dönüş mekanizması istekleri alternatif bir hizmete yönlendirerek genel sistem kullanılabilirliğini korur.
Senaryolar
Ana bilgisayar düzeyinde devre kesmeyi trafik geri dönüşü ile birleştirmek, kesinti sırasında yedek bir hizmete geçiş yapmanızı ve devre kesme sürecinde kullanılabilirliği sürdürmenizi sağlar.
Trafik önceden ısıtma: yeni sürüm dağıtımı için sorunsuz geçiş
Geleneksel mavi-yeşil dağıtımlarda veya kademeli güncellemelerde yeni bir hizmet sürümü aynı anda tüm trafiği alarak aşırı yüke neden olabilir. Trafik önceden ısıtma trafiği kademeli olarak devreye sokar; örneğin %10'dan başlayıp artırır. Bu yaklaşım soğuk başlatma maliyeti yüksek olan hizmetler için uygundur.
ASM iki düzeyde trafik önceden ısıtma desteği sunar:
Önceden ısıtma
Önceden ısıtma özelliği destination rules üzerinden yapılandırılır ve bir hizmet örneğinin belirtilen bir zaman penceresi içinde istek hacmini kademeli olarak artırmasına olanak tanır.
Senaryolar
Hedef hizmetin yukarı akış ana bilgisayarı yavaş başlatma penceresi içindeyken yük dengeleyici o ana bilgisayara ayrılan trafiği azaltır. Bu yöntem özellikle hizmet ölçeklendirme veya yeni sürüm yayınlama senaryolarında idealdir çünkü yeni başlatılan yukarı akış ana bilgisayarlarını ısıtır.
Yeni başlatılan hizmetin veya mevcut yukarı akış ana bilgisayar uç noktalarının sınırlı olduğu durumlarda yavaş başlatma önceden ısıtması uygulanamaz.
ASM trafik planlama paketine dayalı kademeli hizmet yayına alma
Yeni bir hizmet yayınlarken LoadRampingPolicy yapılandırarak aldığı trafiği kademeli olarak artırabilir ve sorunsuz bir geçiş sağlayabilirsiniz.
Senaryolar
ASM trafik planlama paketi bir istek örnekleyici kullanarak isteklerin bir kısmını reddeder ve toplam trafiğin yavaşça artmasını sağlar. Bu yöntem yeni hizmet yayınlamaları için uygundur ancak hizmet ölçeklendirme veya yeni sürüm yayınlamaları için uygun değildir.
Zaman aşımı ve yeniden deneme: hizmet güvenilirliğini sağlama
Zaman aşımı ve yeniden deneme dağıtık sistemlerde yaygın kullanılan hata toleransı önlemleridir ve hizmetlerde ara sıra oluşan hatalarda kullanılabilirliği korur. Zaman aşımı isteklerin süresiz olarak askıda kalmasını önlerken yeniden deneme ağ titremesi veya geçici hatalar gibi geçici sorunları ele alır.
İstek kuyruğa alma ve öncelik tabanlı planlama: yoğun saatlerde ayakta kalma
İstek kuyruğa alma kısıtlama ve eşzamanlılık sınırlarının üzerine inşa edilir. Trafik hızı veya eşzamanlı istek sayısı sistemin işleme kapasitesini aştığında fazla istekler hemen reddedilmek yerine kuyruğa alınır ve önceki istekler tamamlandıkça işlenir.
ASM trafik planlama paketi aracılığıyla eşzamanlılık, trafik hızı ve gecikme süresi temelli üç öncelik tabanlı planlama ilkesi sunar. Yüksek öncelikli istekler önce işlenir; bu sayede kritik işlevsellik ve temel kiracılar için daha iyi deneyim sağlanır.
ASM aşağıdaki istek kuyruğa alma ve öncelik tabanlı planlama ilkelerini destekler:
Kontrol edilebilir eşzamanlılık altında öncelik tabanlı istek planlaması
Sistemin aşırı yüklü olup olmadığını bir eşzamanlılık sınırına göre belirlemek için ConcurrencySchedulingPolicy yapılandırın. İstek eşzamanlılığı bu sınırı aştığında ek istekler kuyruğa alınır ve önceliğe göre planlanır.
Senaryolar
Eşzamanlılık sınırı olan uygulamalar ve önemli trafik dalgalanmaları yaşayan hizmetler için idealdir.
Kontrol edilebilir hız altında öncelik tabanlı istek planlaması
Sistemin aşırı yüklü olup olmadığını bir trafik hızı sınırına göre belirlemek için QuotaSchedulingPolicy yapılandırın. İstek hızı bu sınırı aştığında ek istekler kuyruğa alınır ve önceliğe göre planlanır.
Senaryolar
Trafik hızı sınırı olan uygulamalar ve önemli trafik dalgalanmaları yaşayan hizmetler için idealdir.
Ortalama gecikme süresine dayalı öncelik tabanlı istek planlaması
Gerçek zamanlı istek gecikmesini tarihsel ortalamayla karşılaştırmak için AverageLatencySchedulingPolicy yapılandırın. Önemli bir sapma sistem aşırı yükünü gösterir ve fazla istekler kuyruğa alınarak önceliğe göre planlanır.
Senaryolar
Bu uyarlamalı yöntem bir hizmet için kabul edilebilir maksimum hız veya eşzamanlılığı belirlemenin zor olduğu senaryolar için uygundur.