Aracılığıyla paylaş


Devre Kesici tasarım deseni

Devre Kesici düzeni, bir uygulama uzak bir hizmete veya kaynağa bağlandığında kurtarılması çeşitli süreler alabilen hataların işlenmesine yardımcı olur. Devre kesici, hataları algıladıktan sonra hatalı bir hizmete erişimi geçici olarak engeller. Bu eylem, sistemin etkili bir şekilde kurtarabilmesi için yinelenen başarısız girişimleri engeller. Bu düzen, bir uygulamanın kararlılığını ve dayanıklılığını artırabilir.

Bağlam ve sorun

Dağıtılmış bir ortamda, uzak kaynaklara ve hizmetlere yapılan çağrılar geçici hatalar nedeniyle başarısız olabilir. Geçici hatalar, fazla aktarılan veya geçici olarak kullanılamayan kaynaklar, yavaş ağ bağlantıları veya zaman aşımlarıdır. Bu hatalar genellikle kısa bir süre sonra kendilerini düzeltmektedir. Bu hataları yönetmeye yardımcı olmak için , yeniden deneme düzeni gibi bir strateji kullanacak bir bulut uygulaması tasarlamanız gerekir.

Tahmin edilmeyen olaylar, düzeltilmesi daha uzun sürecek hatalar oluşturabilir. Bu hatalar, kısmi bağlantı kaybından tam bir hizmet hatasına kadar önem derecesine sahip olabilir. Bu gibi durumlarda, bir uygulama başarılı olma olasılığı düşük bir işlemi sürekli olarak yeniden denememelidir. Bunun yerine, uygulamanın başarısız işlemi hızla tanıması ve hatayı buna göre işlemesi gerekir.

Bir hizmet meşgulse, sistemin bir bölümündeki hata art arda hatalara yol açabilir. Örneğin, zaman aşımı uygulamak için bir hizmeti çağıran bir işlem yapılandırabilirsiniz. Hizmet bu süre içinde yanıt vermezse, işlem bir hata iletisiyle yanıt verir.

Ancak bu strateji, zaman aşımı süresi dolana kadar aynı işleme yönelik eşzamanlı istekleri engelleyebilir. Bu engellenen istekler bellek, iş parçacıkları ve veritabanı bağlantıları gibi kritik sistem kaynaklarını barındırabilir. Bu sorun kaynakları tüketebilir ve sistemin aynı kaynakları kullanması gereken diğer ilgisiz bölümleri başarısız olabilir.

Bu gibi durumlarda, bir işlem hemen başarısız olmalı ve yalnızca başarılı olma olasılığı varsa hizmeti çağırmaya çalışmalıdır. Bu sorunu çözmek için daha kısa bir zaman aşımı ayarlayın. Ancak, zaman aşımının işlemin çoğu zaman başarılı olması için yeterince uzun olduğundan emin olun.

Çözüm

Devre Kesici düzeni, uygulamanın başarısız olma olasılığı olan bir işlemi tekrar tekrar çalıştırmasını önlemeye yardımcı olur. Bu düzen, uygulamanın hatanın düzeltilmesi beklenmeden veya hatanın kalıcı olduğunu belirlemek için CPU döngülerini boşa harcamadan çalışmaya devam etmelerini sağlar. Devre Kesici düzeni, bir uygulamanın hatanın ne zaman çözüldüğünü algılamasını da sağlar. Hata giderilirse, uygulama işlemi yeniden çağırmayı deneyebilir.

Uyarı

Devre Kesici düzeni, Yeniden Deneme düzeninden farklı bir amaca hizmet eder. Yeniden Deneme düzeni, bir uygulamanın sonunda başarılı olması beklentisiyle bir işlemi yeniden denemesini sağlar. Devre Kesici düzeni, uygulamanın başarısız olma olasılığı olan bir işlem gerçekleştirmesini engeller. Uygulama bu iki düzeni birleştirip bir devre kesici üzerinden işlemi çağırmak için Yeniden Deneme düzenini kullanabilir. Ancak yeniden deneme mantığı, devre kesicinin döndürdüğü özel durumlara duyarlı olmalıdır ve devre kesici bir hatanın geçici olmadığını belirtiyorsa yeniden denemeyi durdurma girişimlerine karşı hassas olmalıdır.

Devre kesici, başarısız olabilecek işlemler için ara sunucu gibi çalışır. Ara sunucu, son hataların sayısını izlemeli ve işlemin devam etmesi için izin verilip verilmeyeceğine veya hemen bir özel durum döndürülmesine karar vermek için bu bilgileri kullanmalıdır.

Proxy'yi aşağıdaki durumları içeren bir durum makinesi olarak uygulayabilirsiniz. Bu durumlar, bir elektrik devre kesicisinin işlevselliğini taklit etti:

  • Kapalı: Uygulamadan gelen istek işleme yönlendirilir. Ara sunucu, son hataların sayısını korur. İşleme yapılan çağrı başarısız olursa, ara sunucu bu sayıyı artırır. Son hataların sayısı belirli bir süre içinde belirtilen eşiği aşarsa, ara sunucu Açık durumuna yerleştirilir ve zaman aşımı zamanlayıcısını başlatır. Süreölçerin süresi dolduğunda, ara sunucu Yarı Açık durumuna yerleştirilir.

    Uyarı

    Zaman aşımı sırasında sistem, uygulamanın işlemi yeniden denemesine izin vermeden önce hataya neden olan sorunu düzeltmeye çalışır.

  • Açık: Uygulamadan gelen istek hemen başarısız olur ve uygulamaya bir özel durum döndürülür.

  • Yarı Açık: Uygulamadan gelen sınırlı sayıda isteğin geçmesine ve işlemi çağırmasına izin verilir. Bu istekler başarılı olursa, devre kesici hataya neden olan hatanın düzeltildiğini varsayar ve devre kesici Kapalı durumuna geçer. Hata sayacı sıfırlanır. Herhangi bir istek başarısız olursa, devre kesici hatanın hala mevcut olduğunu varsayar, bu nedenle Açık durumuna geri döner. Sistemin hatadan kurtarabilmesi için zaman aşımı zamanlayıcısını yeniden başlatır.

    Uyarı

    Yarı Açık durumu, kurtarma hizmetinin aniden isteklerle dolup taşmasını önlemeye yardımcı olur. Bir hizmet kurtarılırken, kurtarma tamamlanana kadar sınırlı sayıda isteği destekleyebiliyor olabilir. Ancak kurtarma işlemi devam ederken, bir iş akışı hizmetin zaman aşımına veya yeniden başarısız olmasına neden olabilir.

Aşağıdaki diyagramda her durum için sayaç işlemleri gösterilmektedir.

Devre kesici durumlarını gösteren diyagram.

Kapalı durumu için hata sayacı zamana bağlıdır. Düzenli aralıklarla otomatik olarak sıfırlanır. Bu tasarım, ara sıra hatalarla karşılaşırsa devre kesicinin Açık duruma girmesini önlemeye yardımcı olur. Hata eşiği, Açık durumunu yalnızca belirtilen aralıkta belirtilen sayıda hata oluştuğunda tetikler.

Yarı Açık durumunun başarı sayacı, işlemi çağırmak için yapılan başarılı girişimlerin sayısını kaydeder. Devre kesici, belirtilen sayıda başarılı, ardışık işlem çağrısından sonra Kapalı durumuna geri döner. Herhangi bir çağrı başarısız olursa, devre kesici hemen Açma durumuna girer ve yarı açık duruma bir sonraki girişinde başarı sayacı sıfırlanır.

Uyarı

Sistem kurtarma, başarısız bir bileşeni geri yükleme veya yeniden başlatma ya da ağ bağlantısını onarma gibi dış işlemleri temel alır.

Devre Kesici düzeni sistem bir hatadan kurtarılırken tutarlılık sağlar ve performans üzerindeki etkiyi en aza indirir. Sistemin yanıt süresini korumaya yardımcı olabilir. Bu desen, büyük olasılıkla başarısız olacak bir işlem için gelen isteği, işlemin zaman aşımına uğramasını veya hiçbir zaman geri dönmemesini beklemek yerine hızla geri çevirir. Devre kesici durum her değiştiğinde bir olay tetiklerse, bu bilgiler korumalı sistem bileşeninin durumunu izlemeye yardımcı olabilir veya bir devre kesici Açık duruma geçtiğinde bir yöneticiyi uyarabilir.

Bu düzeni özelleştirebilir ve farklı hata türlerine uyarlayabilirsiniz. Örneğin, bir devre kesiciye artan bir zaman aşımı zamanlayıcısı uygulayabilirsiniz. Devre kesiciyi başlangıçta birkaç saniye boyunca durumuna yerleştirebilirsiniz. Hata çözülmezse, zaman aşımını birkaç dakikaya artırın ve buna göre ayarlayın. Bazı durumlarda, hata döndürmek ve özel durum oluşturmak yerine , Open durumu uygulama için anlamlı bir varsayılan değer döndürebilir.

Uyarı

Geleneksel olarak, devre kesiciler hata sayısı ve zaman aşımı süresi gibi önceden yapılandırılmış eşiklere dayanırdı. Bu yaklaşım belirlenimci ama bazen yetersiz davranışlara neden oldu.

Yapay zeka ve makine öğrenmesi kullanan uyarlamalı teknikler gerçek zamanlı trafik desenlerine, anomalilere ve geçmiş hata oranlarına göre eşikleri dinamik olarak ayarlayabilir. Bu yaklaşım dayanıklılığı ve verimliliği artırır.

Sorunlar ve dikkat edilmesi gerekenler

Bu düzeni uygularken aşağıdaki faktörleri göz önünde bulundurun:

  • Özel durum işleme: Devre kesici aracılığıyla bir işlemi çağıran bir uygulamanın, işlem kullanılamıyorsa özel durumları işleyebilmesi gerekir. Özel durum yönetimi uygulamaya dayanır. Örneğin, bir uygulama işlevselliğini geçici olarak düşürebilir, aynı görevi gerçekleştirmeyi denemek veya aynı verileri almak için alternatif bir işlem çağırabilir ya da kullanıcıya özel durumu bildirebilir ve daha sonra yeniden denemesini isteyebilir.

  • Özel durum türleri: İstek hatasının nedenleri önem derecesinde farklılık gösterebilir. Örneğin, uzak bir hizmet kilitlendiği ve kurtarılması birkaç dakika gerektirdiği veya aşırı yüklenmiş bir hizmetin zaman aşımına neden olduğu için istek başarısız olabilir. Devre kesici, oluşan özel durum türlerini inceleyip stratejisini bu özel durumların doğasına göre ayarlayabilir. Örneğin, devre kesiciyi Açık duruma geçirmek için, kullanılamayan hizmetin neden olduğu hata sayısından daha fazla zaman aşımı istisnası gerekebilir.

  • Izleme: Devre kesici, operasyon ekiplerinin sistem durumunu değerlendirebilmesi için hem başarısız hem de başarılı isteklerde net gözlemlenebilirlik sağlamalıdır. Hizmetler arasında uçtan uca görünürlük için dağıtılmış izlemeyi kullanın.

  • Kurtarılabilirlik: Devre kesiciyi, koruduğu işlemin olası kurtarma düzeniyle eşleşecek şekilde yapılandırmanız gerekir. Örneğin, devre kesici uzun süre Açık durumda kalırsa, hatanın nedeni çözülse bile özel durumlar oluşturabilir. Benzer şekilde, devre kesici Açık durumundan Yarı Açık durumuna çok hızlı geçtiğinde uygulamaların yanıt sürelerini dalgalandırabilir ve azaltabilir.

  • Başarısız işlemler testi:Açık durumda, devre kesici, Yarı Açık duruma ne zaman geçileceğini belirlemek için zamanlayıcı kullanmak yerine, kullanılabilir olup olmadığını belirlemek için düzenli aralıklarla uzak hizmete veya kaynağa ping yapabilir. Bu ping, daha önce başarısız olan bir işlemi çağırmayı veya uzak hizmetin sağladığı özel bir sistem durumu denetimi işlemini kullanmayı deneyebilir. Daha fazla bilgi için bkz: Sağlık Uç Noktası İzleme deseni.

  • El ile geçersiz kılma: Başarısız bir işlemin kurtarma süresi son derece değişkense, bir yöneticinin devre kesiciyi kapatmasını ve hata sayacını sıfırlamasını sağlayan bir el ile sıfırlama seçeneği sağlamanız gerekir. Benzer şekilde, bir yönetici bir devre kesiciyi Açma durumuna zorlayabilir ve korumalı işlem geçici olarak kullanılamıyorsa zaman aşımı zamanlayıcısını yeniden başlatabilir.

  • Eşzamanlılık: Bir uygulamanın çok sayıda eşzamanlı örneği aynı devre kesiciye erişebilir. Uygulama sırasında eş zamanlı istekler engellenmemeli veya bir işleme yapılan çağrıya aşırı ek yük getirilmemelidir.

  • Kaynak farklılaştırması: Birden çok temel alınan bağımsız sağlayıcı varsa, tek bir kaynak türü için tek bir devre kesici kullanırken dikkatli olun. Örneğin, birden çok parça içeren bir veri deposunda bir parçaya tam olarak erişilebilirken, başka bir parça geçici bir sorunla karşılaşabilir. Bu senaryolardaki hata yanıtları birleştirilirse, hata olasılığı yüksek olsa bile bir uygulama bazı parçalara erişmeyi deneyebilir. Ayrıca başarılı olma olasılığı yüksek olsa bile diğer parçalara erişim engellenebilir.

  • Hızlandırılmış devre kesintisi: Bazen bir hata yanıtı, devre kesicinin hemen takılması ve minimum süre boyunca takılı kalması için yeterli bilgi içerebilir. Örneğin, aşırı yüklenmiş bir paylaşılan kaynaktan gelen hata yanıtı, uygulamanın hemen yeniden denemek yerine birkaç dakika içinde yeniden denemesi gerektiğini gösterebilir.

  • Çoklu bölge dağıtımları: Tek bölge veya çok bölgeli dağıtımlar için bir devre kesici tasarlayabilirsiniz. Çoklu bölge dağıtımları tasarlamak için, denetimli yük devretme, gecikme süresi iyileştirme ve mevzuat uyumluluğu sağlamaya yardımcı olan genel yük dengeleyicileri veya bölgeye duyarlı özel devre kesme stratejilerini kullanın.

  • Hizmet ağı devre kesicileri: Devre kesicileri uygulama katmanında veya çapraz kesme, soyutlanmış bir özellik olarak uygulayabilirsiniz. Örneğin, servis mesh'leri genellikle sidecar olarak veya uygulama kodunu değiştirmeden tek başına bir özellik olarak devre kesici destekler.

    Uyarı

    Hizmet, istemciyi kısıtlıyorsa HTTP 429 (çok fazla istek) veya hizmet kullanılamıyorsa HTTP 503 (hizmet kullanılamıyor) döndürebilir. Yanıt, beklenen gecikme süresi gibi diğer bilgileri içerebilir.

  • Başarısız istek yeniden yürütme:Açık durumunda, bir devre kesici hızlı bir şekilde başarısız olmak yerine her isteğin ayrıntılarını bir günlüğe kaydedebilir ve uzak kaynak veya hizmet kullanılabilir olduğunda bu isteklerin yeniden oynatılması için düzenleme yapabilir.

  • Dış hizmetlerde uygunsuz zaman aşımları: Devre kesici, uygulamaları uzun zaman aşımı süreleri olan dış hizmetlerde hatalara karşı tam olarak korumayabilir. Eğer zaman aşımı çok uzunsa, devre kesiciyi kontrol eden bir iş parçacığı, devre kesicinin işlemin başarısız olduğunu belirtmeden önce uzun bir süre boyunca engellenebilir. Bu süre zarfında, birçok diğer uygulama örneği de devre kesici aracılığıyla hizmeti çağırmayı deneyebilir ve hepsi başarısızlıkla sonuçlanmadan önce çok sayıda iş parçacığını bağlayabilir.

  • İşlem çeşitlemesi için uyarlanabilirlik: Devre kesiciler sunucusuz iş yüklerinden kapsayıcılı iş yüklerine kadar farklı işlem ortamlarını dikkate almalıdır; burada soğuk başlatma ve ölçeklenebilirlik gibi faktörler hata işlemeyi etkiler. Uyarlamalı yaklaşımlar, heterojen mimariler arasında dayanıklılığı sağlamaya yardımcı olan işlem türüne göre stratejileri dinamik olarak ayarlayabilir.

Bu desen ne zaman kullanılır?

Bu düzeni aşağıdaki durumlarda kullanın:

  • Bu işlemlerin başarısız olma olasılığı yüksekse, paylaşılan bir kaynağa yönelik aşırı uzak hizmet çağrılarını veya erişim isteklerini durdurarak basamaklı hataları önlemek istiyorsunuz.

  • Çok bölgeli dayanıklılığı geliştirmek için trafiği gerçek zamanlı hata sinyallerine göre akıllı bir şekilde yönlendirmek istiyorsunuz.

  • Hizmet düzeyi hedeflerinizi koruyabilmek ve yüksek gecikme süreli hizmetlerden performans düşüşü yaşamamak için yavaş bağımlılıklara karşı koruma sağlamak istiyorsunuz.

  • Aralıklı bağlantı sorunlarını yönetmek ve dağıtılmış ortamlarda istek hatalarını azaltmak istiyorsunuz.

Bu düzen aşağıdaki durumlarda uygun olmayabilir:

  • Bellek içi veri yapıları gibi bir uygulamadaki yerel özel kaynaklara erişimi yönetmeniz gerekir. Bu ortamda, devre kesici sisteminize ek yük ekler.

  • Bunu, uygulamalarınızın iş mantığındaki özel durumları işlemek için yerine kullanmanız gerekir.

  • İyi bilinen yeniden deneme algoritmaları yeterlidir ve bağımlılıklarınız yeniden deneme mekanizmalarını işlemek için tasarlanmıştır. Bu senaryoda, uygulamanızdaki bir devre kesici sisteminize gereksiz karmaşıklık katabilir.

  • Devre kesicinin sıfırlanması beklenmek kabul edilemez gecikmelere neden olabilir.

  • Mesaj odaklı veya olay odaklı bir mimariniz vardır, çünkü bu mimariler genellikle başarısız mesajları manuel veya ertelenmiş işleme için bir yazışma hatası kuyruğuna yönlendirir. Yerleşik hata yalıtımı ve yeniden deneme mekanizmaları genellikle yeterlidir.

  • Hata kurtarma, genel yük dengeleyicilerde veya hizmet kısa çizgilerinde sistem durumu denetimleri gibi altyapı veya platform düzeyinde yönetilir.

İş yükü tasarımı

Azure Well-Architected Framework yapılarında ele alınan hedefleri ve ilkeleri ele almak için bir iş yükünün tasarımında Devre Kesici düzeninin nasıl kullanılacağını değerlendirin. Aşağıdaki tabloda, bu desenin her bir sütunun hedeflerini nasıl desteklediği hakkında rehberlik sağlanmaktadır.

Sütun Bu desen sütun hedeflerini nasıl destekler?
Güvenilirlik tasarımı kararları, iş yükünüzün hatalı çalışmaya dayanıklı olmasına ve bir hata oluştuktan sonra tamamen çalışır duruma geldiğinden emin olmasına yardımcı olur. Bu düzen, hatalı bir bağımlılığın aşırı yüklenmesini önlemeye yardımcı olur. İş yükünde düzgün bir düşüş tetiklemesi için bu düzeni kullanın. Kendini koruma ve kendini iyileştirme sağlamak için devre kesicileri otomatik kurtarma ile eşleştirin.

- RE:03 Hata modu analizi
- Geçici hatalar
- RE:07 Kendini koruma
Performans Verimliliği , ölçeklendirme, veri ve kod iyileştirmeleri aracılığıyla iş yükünüzün talepleri verimli bir şekilde karşılamasını sağlar. Bu desen, hata durumunda yeniden deneme yaklaşımını önler; bu, bağımlılık kurtarma sırasında aşırı kaynak kullanımına yol açabilir ve kurtarmayı denemekte olan bir bağımlılığın performansını aşırı yükleyebilir.

- PE:07 Kod ve altyapı
- PE:11 Canlı sorunlar yanıtları

Bu model bir sütun içinde dengeleri ortaya çıkartıyorsa, bunları diğer sütunların hedeflerine karşı değerlendirin.

Örnek

Bu örnek, Azure Cosmos DB süresiz ücretsiz katmanı kullanarak kota taşmasını önlemeye yardımcı olması için Devre Kesici tasarımını uygular. Bu katman öncelikli olarak kritik olmayan veriler içindir ve saniye başına belirli bir kaynak birimi kotası ayıran bir kapasite planı altında çalışır. Mevsimsel olaylar sırasında talep sağlanan kapasiteyi aşabilir ve bu da 429 yanıtlara neden olabilir.

Talep artışları oluştuğunda dinamik eşiklere sahip Azure İzleyici uyarıları , veritabanının daha fazla kapasite gerektirdiğini operasyon ve yönetim ekiplerine algılar ve proaktif olarak bildirir. Aynı anda, geçmiş hata desenleri kullanılarak ayarlanmış bir devre kesici, basamaklı hataları önlemek için devreye girer. Bu durumda, varsayılan veya önbelleğe alınmış yanıtları döndürerek uygulama kontrollü bir şekilde fonksiyonlarını kısar. Uygulama, genel sistem kararlılığını korurken kullanıcılara belirli verilerin geçici olarak kullanılamadığı konusunda bilgi sağlar.

Bu strateji, iş gerekçesiyle uyumlu dayanıklılığı artırır. İş yükü ekiplerinin maliyet artışlarını kasten yönetebilmesi ve beklenmedik şekilde işletim giderlerini artırmadan hizmet kalitesini koruyabilmesi için kapasite artışlarını denetler. Talep azalır veya kapasite artarsa devre kesici sıfırlanır ve uygulama hem teknik hem de bütçe hedefleri ile uyumlu tam işlevselliğe döner.

Azure Cosmos DB ve Azure App Service'te devre kesici uygulamasını gösteren diyagram.

Diyagramda üç birincil bölüm vardır. İlk bölümde iki web tarayıcısı simgesi bulunur. İlk simge tamamen işlevsel bir kullanıcı arabirimi görüntüler ve ikinci simge, sorunu kullanıcılara göstermek için ekran uyarısı içeren düzeyi düşürülmüş bir kullanıcı deneyimi gösterir. İkinci bölüm, iki gruba ayrılmış kesik çizgili bir dikdörtgenin içine alınır. En üstteki grup iş yükü kaynaklarını, App Service'i ve Azure Cosmos DB'yi içerir. Her iki web tarayıcısı simgesindeki oklar, istemciden gelen istekleri temsil eden App Service örneğini gösterir. Ayrıca App Service örneğindeki oklar, uygulama hizmetleriyle veritabanı arasındaki veri etkileşimlerini gösteren Azure Cosmos DB'yi gösterir. Başka bir ok, App Service örneğinden kendisine geri döner ve devre kesici zaman aşımı mekanizmasını sembolize eder. Bu döngü, 429 Çok Fazla İstek yanıtı algılandığında sistemin önbelleğe alınmış yanıtlara geri döndüğünü ve durum çözülene kadar kullanıcı deneyimini düşürdüğünü belirtir. Bu bölümün alt grubu gözlemlenebilirlik ve uyarılara odaklanır. Azure İzleyici, üst gruptaki Azure kaynaklarından veri toplar. Azure İzleyici ayrıca bir uyarı kuralı simgesine de bağlanır. Üçüncü bölümde, uyarı tetiklendiğinde tetiklenen ölçeklenebilirlik iş akışı gösterilmektedir. Uyarı simgesini onaylayanlara bağlayan bir ok, bildirimin gözden geçirilmesi için kendilerine gönderildiğini gösterir. Başka bir ok, onaylayanlardan bir geliştirme konsoluna yönlendirir ve bu da veritabanını ölçeklendirmeye yönelik onay işlemini gösterir. Son olarak, sonraki bir ok geliştirme konsolundan Azure Cosmos DB'ye uzanır ve bu da aşırı yükleme koşuluna yanıt olarak veritabanını ölçeklendirme eylemini gösterir.

Bu mimari için bir Visio dosyasını indirin.

Akış A: Kapalı durum

  • Sistem normal çalışır ve tüm istekler hiçbir 429 HTTP yanıtı döndürmeden veritabanına ulaşır.

  • Devre kesici kapalı kalır ve varsayılan veya önbelleğe alınmış yanıt gerekmez.

Akış B: Açık durum

  1. Devre kesici ilk 429 yanıtı aldığında Açık duruma yolculuk eder.

  2. Sonraki istekler, varsayılan veya önbelleğe alınmış yanıtları döndüren ve kullanıcıları hizmet kalitesinde geçici bir azalma hakkında bilgilendiren hemen kısa devre yaptırılır. Uygulama daha fazla aşırı yüklemeye karşı korunur.

  3. Azure İzleyici günlükleri ve telemetri verilerini alır ve bunları dinamik eşiklere göre değerlendirir. Uyarı kuralı koşulları karşılanırsa bir uyarı tetiklenir.

  4. Eylem grubu, aşırı yükleme koşulunun operasyon ekibine proaktif olarak bildirir.

  5. İş yükü ekibi onayının ardından operasyon ekibi, yük doğal olarak azalırsa aşırı yüklemeyi azaltmak veya ölçeklendirmeyi geciktirmek için sağlanan aktarım hızını artırabilir.

Akış C: Half-Open durumu

  1. Önceden tanımlanmış bir zaman aşımından sonra, devre kesici sınırlı sayıda deneme isteğine izin veren bir Yarı Açık durumuna girer.

  2. Bu deneme istekleri yanıt döndürmeden 429 başarılı olursa, kesici Kapalı durumuna sıfırlanır ve normal işlemler Akış A'ya geri yüklenir. Hatalar devam ederse, kesici Açık duruma veya Akış B'ye geri döner.

Bileşenler

  • Azure App Service , istemci istekleri için birincil giriş noktası olarak hizmet veren web uygulamasını barındırıyor. Uygulama kodu, devre kesici ilkelerini zorlayan mantığı uygular ve devre açıkken varsayılan veya önbelleğe alınmış yanıtlar sunar. Bu mimari, aşağı akış sistemlerinde aşırı yüklemeyi önlemeye ve talebin en yoğun olduğu veya hatalarda kullanıcı deneyiminin korunmasına yardımcı olur.

  • Azure Cosmos DB uygulamanın veri depolarından biridir. Küçük üretim iş yükleri için ideal olan ücretsiz katman aracılığıyla kritik olmayan veriler sağlar. Devre kesici mekanizması, yüksek talep dönemlerinde veritabanı trafiğini sınırlamaya yardımcı olur.

  • Merkezi izleme çözümü olarak Azure İzleyici işlevi görür. Kapsamlı, uçtan uca gözlemlenebilirlik sağlamaya yardımcı olmak için tüm etkinlik günlüklerini toplar. Azure İzleyici, toplama ve analiz için App Service'ten günlükleri ve telemetri verilerini ve Azure Cosmos DB'den önemli ölçümleri (yanıt sayısı 429 gibi) alır.

  • Azure İzleyici uyarılarını uyarı kurallarını geçmiş verilere göre olası kesintileri belirlemek için dinamik eşiklere göre değerlendirir. Önceden tanımlanmış uyarılar, eşikler ihlal edildiğinde operasyon ekibini bilgilendirir.

    Bazen iş yükü ekibi sağlanan aktarım hızındaki artışı onaylayabilir, ancak operasyon ekibi yük çok yüksek olmadığından sistemin kendi kendine kurtarabileceğini tahmin eder. Bu gibi durumlarda devre kesici zaman aşımı süresi doğal olarak sona erer. Bu süre boyunca, 429 yanıtları durursa eşik hesaplaması uzun süren kesintileri algılar ve bunları öğrenme algoritmasının dışında tutar. Sonuç olarak, bir sonraki aşırı yüklemede eşik değeri, Azure Cosmos DB'de daha yüksek bir hata oranı bekler, bu da bildirimin gecikmesine neden olur. Bu ayarlama, devre kesicinin sorunu anında uyarı olmadan işlemesini sağlar ve bu da maliyeti ve operasyonel verimliliği artırır.

  • Bulutta konsantre olan web uygulamalarına Reliable Web App deseni, Devre Kesici desenini uygular.

  • Yeniden Deneme düzeni, bir uygulamanın daha önce başarısız olan bir işlemi saydam bir şekilde yeniden deneyerek bir hizmete veya ağ kaynağına bağlanmaya çalıştığında beklenen geçici hataları nasıl işleyebileceğini açıklar.

  • Sistem Durumu Uç Noktası İzleme düzeni, devre kesicinin hizmetin kullanıma sunduğu bir uç noktaya istek göndererek hizmetin durumunu nasıl test ettiğini açıklar. Hizmet, durumunu gösteren bilgileri döndürmelidir.