Azure Cosmos DB ile yüksek kullanılabilirlik elde edin

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo

Yüksek kullanılabilirliğe sahip bir çözüm oluşturmak için tüm bileşenlerinin güvenilirlik özelliklerini değerlendirmeniz gerekir. Azure Cosmos DB, çözümünüz için yüksek kullanılabilirlik elde etmeye yardımcı olacak özellikler ve yapılandırma seçenekleri sağlar.

Bu makalede aşağıdaki terimler kullanılır:

  • Kurtarma süresi hedefi (RTO):Azure Cosmos DB'yi etkileyen bir kesintinin başlangıcı ile kurtarmanın tam kullanılabilirlik arasındaki süre.
  • Kurtarma noktası hedefi (RPO): Doğru şekilde geri yüklenen son yazma ile Azure Cosmos DB'yi etkileyen kesintinin başlangıcı arasındaki süre.

Not

Beklenen ve maksimum RPO'lar ve GPO'lar, Azure Cosmos DB'nin yaşadığı kesinti türüne bağlıdır. Örneğin, tek bir düğümde kesinti olması beklenen RTO ve RPO'dan tüm bölgenin kesintisinden farklıdır.

Bu makalede Azure Cosmos DB kullanılabilirliğini etkileyebilecek olaylar ve buna karşılık gelen Azure Cosmos DB yapılandırma seçenekleri açıklanmaktadır.

Çoğaltma bakımı

Azure Cosmos DB, tek tek işlem düğümlerinin tüm ayrıntılarını şeffaf bir şekilde yöneten çok kiracılı bir hizmettir. Kullanıcıların herhangi bir düzeltme eki uygulama veya planlı bakım konusunda endişelenmeleri gerekmez. Azure Cosmos DB, sistemin gerçekleştirdiği tüm otomatik bakım işlemleri aracılığıyla kullanılabilirlik ve P99 gecikme süresi için SLA'ları garanti eder.

Çoğaltma kesintileri

Çoğaltma kesintileri , azure bölgesinde dağıtılan bir Azure Cosmos DB kümesindeki tek tek düğümlerdeki kesintilerdir.

Azure Cosmos DB, dört çoğaltmalı çekirdek içindeki hesabınız için her Azure bölgesindeki verilerinizin en az üç çoğaltmasını garanti ederek çoğaltma kesintilerini otomatik olarak azaltır. Bu garanti, uygulama değişikliklerine veya yapılandırmalara gerek kalmadan tek tek düğüm kesintileri için 0 RTO'sunun ve 0 RPO'sunun ortaya çıkmasını sağlar.

Birçok Azure bölgesinde Azure Cosmos DB kümenizi kullanılabilirlik alanları arasında dağıtmak mümkündür. Kullanılabilirlik alanları, fiziksel olarak ayrı olduklarından ve ayrı bir güç kaynağı, ağ ve soğutma sağladığından SLA'ları artırabilir. Kullanılabilirlik alanlarını kullanarak bir Azure Cosmos DB hesabı dağıttığınızda Azure Cosmos DB, bir bölge kesintisinde bile 0 RTO ve 0 RPO sağlar.

Fazladan kullanıcı girişi olmadan tek bir Azure bölgesinde dağıtım yaptığınızda, Azure Cosmos DB düğüm kesintilerine karşı dayanıklıdır. Kullanılabilirlik alanları arasında yedekliliği etkinleştirmek, Azure Cosmos DB'nin artan ücretler karşılığında bölge kesintilerine karşı dayanıklı olmasını sağlar.

Alanlar arası yedekliliği yalnızca Azure Cosmos DB hesabına yeni bir bölge eklerken yapılandırabilirsiniz. Mevcut bölgeler için bölgeyi kaldırıp bölge yedekliliğini etkinleştirerek bölge yedekliliğini etkinleştirebilirsiniz. Tek bölgeli bir hesap için bu yaklaşım geçici olarak yük devretmek için bir bölge eklemenizi ve ardından bölge yedekliliği etkinleştirilmiş olarak istenen bölgeyi kaldırıp eklemenizi gerektirir.

Azure Cosmos DB hesabı varsayılan olarak birden çok kullanılabilirlik alanı kullanmaz. Birden çok kullanılabilirlik alanında dağıtımı aşağıdaki yollarla etkinleştirebilirsiniz:

Azure Cosmos DB hesabınız N Azure bölgeleri arasında dağıtılmışsa tüm verilerinizin N x 4 kopyası olur. Azure Cosmos DB'nin her bölgedeki verileri çoğaltması hakkında daha fazla bilgi için bkz . Azure Cosmos DB ile genel dağıtım. İkiden fazla bölgede Azure Cosmos DB hesabına sahip olmak uygulamanızın kullanılabilirliğini artırır ve ilişkili bölgelerde düşük gecikme süresi sağlar.

Bölge kesintileri

Bölge kesintileri , bir Azure bölgesindeki tüm kullanılabilirlik alanlarındaki tüm Azure Cosmos DB düğümlerini etkileyen kesintilerdir. Nadir bölge kesintileri için Azure Cosmos DB'yi çeşitli dayanıklılık ve kullanılabilirlik sonuçlarını destekleyecek şekilde yapılandırabilirsiniz.

Dayanıklılık

Azure Cosmos DB hesabı tek bir bölgede dağıtıldığında genellikle veri kaybı olmaz. Azure Cosmos DB hizmetleri etkilenen bölgede kurtarıldıktan sonra veri erişimi geri yüklenir. Veri kaybı yalnızca Azure Cosmos DB bölgesinde kurtarılamaz bir olağanüstü durumla oluşabilir.

Azure Cosmos DB, bir bölgedeki olağanüstü olağanüstü durumlardan kaynaklanabilecek tam veri kaybına karşı koruma sağlamanıza yardımcı olmak için iki yedekleme modu sağlar:

  • Sürekli yedeklemeler her bölgeyi 100 saniyede bir yedekler . Verilerinizi 1 saniyelik ayrıntı düzeyiyle belirli bir noktaya geri yüklemenize olanak tanır. Her bölgede yedekleme, o bölgede işlenen verilere bağlıdır.
  • Düzenli yedeklemeler , bölümler arasında eşitleme olmadan hesabınızın altındaki tüm kapsayıcılardan tüm bölümleri tamamen yedekler. En düşük yedekleme aralığı 1 saattir.

Azure Cosmos DB hesabı birden çok bölgeye dağıtıldığında, veri dayanıklılığı hesapta yapılandırdığınız tutarlılık düzeyine bağlıdır. Tüm tutarlılık düzeyleri için, en az iki bölgede dağıtılan bir Azure Cosmos DB hesabının RPO'sunun aşağıdaki tablo ayrıntıları.

Tutarlılık düzeyi Bölge kesintisi için RPO
Oturum, tutarlı ön ek, son 15 dakikadan az
Sınırlanmış eskime durumu K ve T
Güçlü 0

K = Bir öğenin sürüm sayısı (yani güncelleştirmeler).

T = Son güncelleştirmeden bu yana geçen zaman aralığı.

Birden çok bölgeli hesaplar için en düşük K ve T değeri 100.000 yazma işlemi veya 300 saniyedir. Bu değer, sınırlanmış eskime durumunu kullanırken veriler için en düşük RPO'yu tanımlar.

Tutarlılık düzeyleri arasındaki farklar hakkında daha fazla bilgi için bkz . Azure Cosmos DB'de tutarlılık düzeyleri.

Kullanılabilirlik

Çözümünüz bölge kesintileri sırasında sürekli kullanılabilirlik gerektiriyorsa Azure Cosmos DB'yi verilerinizi birden çok bölgede çoğaltacak ve gerektiğinde kullanılabilir bölgelere saydam bir şekilde yük devredecek şekilde yapılandırabilirsiniz.

Tek bölgeli hesaplar bölgesel bir kesintiden sonra kullanılabilirliğini kaybedebilir. Her zaman yüksek kullanılabilirlik sağlamak için Azure Cosmos DB hesabınızı tek bir yazma bölgesi ve en az bir saniyelik (okuma) bölgeyle ayarlamanızı ve hizmet tarafından yönetilen yük devretmeyi etkinleştirmenizi öneririz.

Hizmet tarafından yönetilen yük devretme, Azure Cosmos DB'nin daha önce Dayanıklılık bölümünde açıklandığı gibi, veri kaybı pahasına kullanılabilirliği korumak için çok bölgeli bir hesabın yazma bölgesinde yük devretme yapmasına olanak tanır. Bölgesel yük devretmeler Azure Cosmos DB istemcisinde algılanıp işlenir. Uygulamadan herhangi bir değişiklik yapılması gerekmez. Birden çok okuma bölgesini ve hizmet tarafından yönetilen yük devretmeyi etkinleştirme yönergeleri için bkz . Azure portalını kullanarak Azure Cosmos DB hesabını yönetme.

Önemli

Birden çok okuma bölgesi olan tek bölgeli yazma yapılandırmasını seçtiyseniz, hizmet tarafından yönetilen yük devretmeyi etkinleştirmek için üretim iş yükleri için kullanılan Azure Cosmos DB hesaplarını yapılandırmanızı kesinlikle öneririz. Bu yapılandırma, Azure Cosmos DB'nin hesap veritabanlarının yükünü kullanılabilir bölgelere devretmesini sağlar. Bu yapılandırmanın olmaması durumunda hesap, yazma bölgesi kesintisinin tüm süresi boyunca yazma kullanılabilirliği kaybıyla karşılaşır. El ile yük devretme, bölge bağlantısının olmaması nedeniyle başarılı olmayacaktır.

Uyarı

Hizmet tarafından yönetilen yük devretme etkinleştirildiğinde bile kısmi kesinti, Azure Cosmos DB hizmet ekibi için el ile müdahale gerektirebilir. Bu senaryolarda yük devretmenin etkili olması 1 saat (veya daha fazla) sürebilir. Kısmi kesintiler sırasında daha iyi yazma kullanılabilirliği için hizmet tarafından yönetilen yük devretmeye ek olarak kullanılabilirlik alanlarını etkinleştirmenizi öneririz.

Birden çok yazma bölgesi

Azure Cosmos DB'yi birden çok bölgede yazmaları kabul etmek üzere yapılandırabilirsiniz. Bu yapılandırma, coğrafi olarak dağıtılmış uygulamalarda yazma gecikme süresini azaltmak için kullanışlıdır.

Bir Azure Cosmos DB hesabını birden çok yazma bölgesi için yapılandırdığınızda güçlü tutarlılık desteklenmez ve yazma çakışmaları ortaya çıkabilir. Bu çakışmaları çözme hakkında daha fazla bilgi için bkz . Birden çok yazma bölgesi kullanırken çakışma türleri ve çözüm ilkeleri.

Önemli

Aynı Belge Kimliğini sık sık güncelleştirme (veya TTL veya silme işleminden sonra aynı belge kimliğini sık sık yeniden oluşturma), sistemde oluşturulan çakışma sayısının artması nedeniyle çoğaltma performansını etkiler.  

Çakışma çözümleme bölgesi

Azure Cosmos DB hesabı birden çok bölgeli yazma işlemleriyle yapılandırıldığında, bölgelerden biri yazma çakışmalarında bir arbiter görevi görür.

Çok bölgeli yazma işlemleri için en iyi yöntemler

Birden çok bölgeye yazarken göz önünde bulundurmanız gereken bazı en iyi yöntemler aşağıdadır.

Yerel trafiği yerel tutma

Birden çok bölgeli yazma işlemleri kullandığınızda uygulama, yerel bölgeden kaynaklanan okuma ve yazma trafiğini kesinlikle yerel Cosmos DB bölgesine vermelidir. En iyi performans için bölgeler arası çağrılardan kaçının.

Uygulamanın aşağıdaki kötü modellerden kaçınarak çakışmaları en aza indirmesi önemlidir:

  • Hızlı yanıt süresi alma olasılığını artırmak için tüm bölgelere aynı yazma işlemini gönderme

  • İstek başına okuma veya yazma işlemi için hedef bölgeyi rastgele belirleme

  • İstek başına okuma veya yazma işleminin hedef bölgesini belirlemek için hepsini bir kez deneme ilkesi kullanma

Çoğaltma gecikmesi bağımlılığından kaçının

Çok bölgeli yazma hesaplarını güçlü tutarlılık için yapılandıramazsınız. Yazılmakta olan bölge, Azure Cosmos DB verileri yerel olarak çoğaltırken verileri zaman uyumsuz olarak genel olarak çoğaltdıktan hemen sonra yanıt verir.

Seyrek olsa da, verileri coğrafi olarak çoğaltırken bir veya birkaç bölümde çoğaltma gecikmesi oluşabilir. Çoğaltma gecikmesi, ağ trafiğinde nadir görülen bir blip veya normalden yüksek çakışma çözümü oranları nedeniyle oluşabilir.

Örneğin, uygulamanın A Bölgesine yazdığı ancak B Bölgesinden okuduğu bir mimari, iki bölge arasındaki çoğaltma gecikmesine bağımlılık sağlar. Ancak, uygulama aynı bölgeyi okur ve yazarsa, çoğaltma gecikmesi durumunda bile performans sabit kalır.

Yazma işlemleri için oturum tutarlılığı kullanımını değerlendirme

Oturum tutarlılığında, hem okuma hem de yazma işlemleri için oturum belirtecini kullanırsınız.

Okuma işlemleri için Azure Cosmos DB, önbelleğe alınan oturum belirtecini, belirtilen (veya daha yeni) oturum belirtecine karşılık gelen verileri alma garantisiyle sunucuya gönderir.

Yazma işlemleri için Azure Cosmos DB, oturum belirtecini veritabanına yalnızca sunucu sağlanan oturum belirtecini yakaladığında verileri kalıcı hale getirmek için garanti ile gönderir. Tek bölgeli yazma hesaplarında, yazma bölgesinin her zaman oturum belirtecine yetişmiş olması garanti edilir. Ancak, birden çok bölgeli yazma hesaplarında, yazdığınız bölge başka bir bölgeye verilen yazma işlemlerine yetişmiş olmayabilir. İstemci B Bölgesinden bir oturum belirteci ile A Bölgesine yazarsa, Bölge A, B Bölgesinde yapılan değişiklikleri yakalayana kadar verileri kalıcı hale getiremez.

Oturum belirteçlerini istemci örnekleri arasında geçirirken yazma işlemleri için değil, yalnızca okuma işlemleri için kullanmak en iyisidir.

Aynı belgede yapılan hızlı güncelleştirmeleri azaltma

Çakışmaların yokluğunu çözmek veya onaylamak için sunucunun güncelleştirmeleri, aynı belge tekrar tekrar güncelleştirildiğinde uygulama tarafından tetiklenen yazma işlemleriyle çakılabilir. Aynı belgeye hızla art arda yapılan yinelenen güncelleştirmeler, çakışma çözümü sırasında daha yüksek gecikme süreleri yaşar.

Aynı belgede yinelenen güncelleştirmelerde zaman zaman ani artışlar kaçınılmaz olsa da, sabit durum trafiği uzun bir süre boyunca aynı belgede hızlı güncelleştirmeler görüyorsa, bunun yerine yeni belgelerin oluşturulduğu bir mimariyi keşfetmeyi düşünebilirsiniz.

Bölge kesintisi sırasında bekleyebileceğinizler

Tek bölgeli hesapların istemcileri, hizmet geri yüklenene kadar okuma ve yazma kullanılabilirliği kaybıyla karşılaşır.

Birden çok bölgeli hesaplar, aşağıdaki yapılandırmalara ve kesinti türlerine bağlı olarak farklı davranışlarla karşılaşır.

Yapılandırma Kesinti Kullanılabilirlik etkisi Dayanıklılık etkisi Yapılması gereken
Tek yazma bölgesi Okuma bölgesi kesintisi Tüm istemciler okumaları otomatik olarak diğer bölgelere yönlendirir. Tüm yapılandırmalarda okuma veya yazma kullanılabilirliği kaybı olmaz. Özel durum, güçlü tutarlılığı olan ve hizmetin geri yüklenmesine kadar yazma kullanılabilirliğini kaybeden iki bölgenin yapılandırmasıdır. Hizmet tarafından yönetilen yük devretmeyi etkinleştirirseniz, hizmet bölgeyi başarısız olarak işaretler ve yük devretme gerçekleşir. Veri kaybı yok. Kesinti sırasında, kalan bölgelerde okuma trafiğini desteklemek için yeterli sağlanan İstek Birimi (RU) olduğundan emin olun.

Kesinti sona erdiğinde, sağlanan RU'ları uygun şekilde yeniden ayarlayın.
Tek yazma bölgesi Bölge kesintisi yazma İstemciler okumaları diğer bölgelere yeniden yönlendirir.

Hizmet tarafından yönetilen yük devretme olmadan istemciler yazma kullanılabilirliği kaybıyla karşılaşır. Kesinti sona erdiğinde yazma kullanılabilirliğinin geri yüklenmesi otomatik olarak gerçekleşir.

Hizmet tarafından yönetilen yük devretme ile, hizmet seçtiğiniz yeni bir yazma bölgesine yük devretmeyi yönetene kadar istemciler yazma kullanılabilirliği kaybıyla karşılaşır.
Güçlü tutarlılık düzeyini seçmezseniz hizmet bazı verileri kalan etkin bölgelere çoğaltmayabilir. Bu çoğaltma, seçtiğiniz tutarlılık düzeyine bağlıdır. Etkilenen bölgede kalıcı veri kaybı yaşanırsa, kurtarılmamış verileri kaybedebilirsiniz. Kesinti sırasında, kalan bölgelerde okuma trafiğini desteklemek için yeterli sağlanan RU olduğundan emin olun.

Kesinti sırasında el ile yük devretme tetiklemeyin , çünkü başarılı olamaz.

Kesinti sona erdiğinde, sağlanan RU'ları uygun şekilde yeniden ayarlayın. NoSQL için API'yi kullanan hesaplar da çakışma akışınızdan başarısız olan bölgedeki kurtarılmamış verileri kurtarabilir.
Birden çok yazma bölgesi Bölgesel kesintiler Hizmet tarafından yönetilen yük devretme ile tek bir yazma bölgesine benzer olan geçici yazma kullanılabilirliği kaybı olasılığı vardır. Çakışma çözümleme bölgesinin yük devretmesi, kesinti sırasında çok sayıda çakışan yazma işlemi gerçekleştiğinde yazma kullanılabilirliği kaybına da neden olabilir. Seçilen tutarlılık düzeyine bağlı olarak, başarısız bölgedeki son güncelleştirilen veriler kalan etkin bölgelerde kullanılamayabilir. Etkilenen bölgede kalıcı veri kaybı yaşanırsa, yapılandırılmamış verileri kaybedebilirsiniz. Kesinti sırasında, daha fazla trafiği desteklemek için kalan bölgelerde sağlanan RU'ların yeterli olduğundan emin olun.

Kesinti sona erdiğinde, sağlanan RU'ları uygun şekilde yeniden ayarlayabilirsiniz. Mümkünse, Azure Cosmos DB başarısız bölgedeki kurtarılmamış verileri otomatik olarak kurtarır. Bu otomatik kurtarma, NoSQL için API kullanan hesaplar için yapılandırdığınız çakışma çözümleme yöntemini kullanır. Diğer API'leri kullanan hesaplar için bu otomatik kurtarma son yazma kazançlarını kullanır.

Okuma bölgesi kesintileri hakkında ek bilgi

  • Etkilenen bölgenin bağlantısı kesildi ve çevrimdışı olarak işaretlendi. Azure Cosmos DB SDK'ları , okuma çağrılarını tercih edilen bölge listesinde bir sonraki kullanılabilir bölgeye yönlendirir.

  • Tercih edilen bölge listesindeki bölgelerin hiçbiri kullanılamıyorsa, çağrılar otomatik olarak geçerli yazma bölgesine geri döner.

  • Okuma bölgesi kesintilerini işlemek için uygulama kodunuzda değişiklik yapılması gerekmez. Etkilenen okuma bölgesi yeniden çevrimiçi olduğunda, geçerli yazma bölgesiyle eşitlenir ve tam olarak yakalandıktan sonra okuma isteklerini sunmak için yeniden kullanılabilir.

  • Sonraki okumalar kurtarılan bölgeye yönlendirilir ve bunun için uygulamanızın kodunda değişiklik yapılması gerekmez. Azure Cosmos DB, hem yük devretme hem de daha önce başarısız olan bir bölgeye yeniden katılma sırasında okuma tutarlılığı garantilerini karşılamaya devam eder.

  • Azure yazma bölgesinin kalıcı olarak geri alınamaz olduğu nadir ve talihsiz bir durumda bile, çok bölgeli Azure Cosmos DB hesabınız güçlü tutarlılık ile yapılandırıldıysa veri kaybı olmaz. Çok bölgeli bir Azure Cosmos DB hesabı, Dayanıklılık bölümünde daha önce belirtilen dayanıklılık özelliklerine sahiptir.

Yazma bölgesi kesintileri hakkında ek bilgi

  • Yazma bölgesi kesintisi sırasında Azure Cosmos DB hesabı, Azure Cosmos DB hesabında hizmet tarafından yönetilen yük devretme yapılandırıldığında ikincil bölgeyi yeni birincil yazma bölgesi olarak yükselter. Yük devretme, belirttiğiniz bölge önceliği sırasına göre başka bir bölgeye gerçekleşir.

  • El ile yük devretme tetiklenmemelidir ve kaynak veya hedef bölgede kesinti olması halinde başarılı olmaz. Bunun nedeni, yük devretme yordamının bölgeler arasında bağlantı gerektiren bir tutarlılık denetimi içermesidir.

  • Daha önce etkilenen bölge yeniden çevrimiçi olduğunda, bölge başarısız olduğunda çoğaltılan tüm yazma verileri çakışma akışı aracılığıyla kullanılabilir hale getirilir. Uygulamalar çakışma akışını okuyabilir, uygulamaya özgü mantığa göre çakışmaları çözebilir ve güncelleştirilmiş verileri uygun şekilde Azure Cosmos DB kapsayıcısına geri yazabilir.

  • Daha önce etkilenen yazma bölgesi kurtarıldıktan sonra Azure portalında "çevrimiçi" olarak gösterilir ve okuma bölgesi olarak kullanılabilir hale gelir. Bu noktada PowerShell, Azure CLI veya Azure portalını kullanarak kurtarılan bölgeye yazma bölgesi olarak geri dönmek güvenlidir. Yazma bölgesini değiştirmeden önce veya değiştirdikten sonra veri veya kullanılabilirlik kaybı olmaz. Uygulamanız yüksek oranda kullanılabilir olmaya devam ediyor.

Uyarı

Azure Cosmos DB hesabının hizmet tarafından yönetilen yük devretme yoluyla ikincil bölgeyi yeni birincil yazma bölgesi olarak yükselttiği yazma bölgesi kesintisi durumunda, özgün yazma bölgesi kurtarıldıktan sonra otomatik olarak yazma bölgesi olarak yükseltilmeyecektir. PowerShell, Azure CLI veya Azure portalını kullanarak (yukarıda açıklandığı gibi güvenli bir şekilde) yazma bölgesi olarak kurtarılan bölgeye geri dönmek sizin sorumluluğunuzdadır.

SLA’lar

Aşağıdaki tabloda, çeşitli hesap yapılandırmalarının yüksek kullanılabilirlik özellikleri özetlemektedir.

KPI Kullanılabilirlik alanları olmadan tek bölgeli yazma işlemleri Kullanılabilirlik alanlarıyla tek bölgeli yazma işlemleri Kullanılabilirlik alanları olmadan birden çok bölgeli, tek bölgeli yazma işlemleri Kullanılabilirlik alanlarıyla birden çok bölgeli, tek bölgeli yazma işlemleri Kullanılabilirlik alanlarıyla veya kullanılabilirlik alanları olmadan birden çok bölgeli, çok bölgeli yazma işlemleri
Yazma kullanılabilirliği SLA'sı %99,99 99.995% %99,99 99.995% %99,999
Okuma kullanılabilirliği SLA'sı %99,99 99.995% %99,999 %99,999 %99,999
Bölge hataları: veri kaybı Veri kaybı Veri kaybı yok Veri kaybı yok Veri kaybı yok Veri kaybı yok
Bölge hataları: kullanılabilirlik Kullanılabilirlik kaybı Kullanılabilirlik kaybı yok Kullanılabilirlik kaybı yok Kullanılabilirlik kaybı yok Kullanılabilirlik kaybı yok
Bölgesel kesinti: veri kaybı Veri kaybı Veri kaybı Tutarlılık düzeyine bağlıdır. Daha fazla bilgi için bkz . Tutarlılık, kullanılabilirlik ve performans dengeleri. Tutarlılık düzeyine bağlıdır. Daha fazla bilgi için bkz . Tutarlılık, kullanılabilirlik ve performans dengeleri. Tutarlılık düzeyine bağlıdır. Daha fazla bilgi için bkz . Tutarlılık, kullanılabilirlik ve performans dengeleri.
Bölgesel kesinti: kullanılabilirlik Kullanılabilirlik kaybı Kullanılabilirlik kaybı Okuma bölgesi hatası için kullanılabilirlik kaybı yok, yazma bölgesi hatası için geçici Okuma bölgesi hatası için kullanılabilirlik kaybı yok, yazma bölgesi hatası için geçici Etkilenen bölgede okuma kullanılabilirliği kaybı, geçici yazma kullanılabilirliği kaybı yok
Fiyat (1) Uygulanamaz Sağlanan RU/sn x 1,25 oranı Sağlanan RU/sn x N bölgeleri Sağlanan RU/sn x 1,25 oran x N bölge (2) Çok bölgeli yazma hızı x N bölge

1 Sunucusuz hesaplar için RU'lar 1,25 faktörüyle çarpılır.

2 1,25 oranı yalnızca kullanılabilirlik alanlarını etkinleştirdiğiniz bölgeler için geçerlidir.

Yüksek oranda kullanılabilir uygulamalar oluşturmak için İpuçları

  • Azure Cosmos DB SDK'larının olaylar sırasında beklenen davranışını ve hangi yapılandırmaların bunu etkilediğini gözden geçirin.

  • Yüksek yazma ve okuma kullanılabilirliği sağlamak için Azure Cosmos DB hesabınızı en az iki bölgeye (veya güçlü tutarlılık kullanıyorsanız üç bölgeye) yayılacak şekilde yapılandırın. Daha fazla bilgi edinmek için bkz . Öğretici: NoSQL api'sini kullanarak Azure Cosmos DB genel dağıtımını ayarlama.

  • Tek bir yazma bölgesiyle yapılandırılmış birden çok bölgeli Azure Cosmos DB hesapları için Azure CLI veya Azure portalını kullanarak hizmet tarafından yönetilen yük devretmeyi etkinleştirin. Hizmet tarafından yönetilen yük devretmeyi etkinleştirdikten sonra, bölgesel bir olağanüstü durum olduğunda Azure Cosmos DB kullanıcı girişi olmadan hesabınıza yük devredecektir.

  • Azure Cosmos DB hesabınız yüksek oranda kullanılabilir olsa bile, uygulamanız yüksek oranda kullanılabilir kalacak şekilde doğru tasarlanmamış olabilir. Uygulama test veya olağanüstü durum kurtarma (DR) tatbikatlarınızın bir parçası olarak uygulamanızın uçtan uca yüksek kullanılabilirliğini test etmek için, hesap için hizmet tarafından yönetilen yük devretmeyi geçici olarak devre dışı bırakın. PowerShell, Azure CLI veya Azure portalını kullanarak el ile yük devretmeyi çağırın ve uygulamanızı izleyin. Testi tamamladıktan sonra birincil bölgeye yeniden yük devredebilir ve hesap için hizmet tarafından yönetilen yük devretmeyi geri yükleyebilirsiniz.

    Önemli

    Kaynak veya hedef bölgede Azure Cosmos DB kesintisi sırasında el ile yük devretmeyi çağırmayın. El ile yük devretme, veri tutarlılığını korumak için bölge bağlantısı gerektirir, bu nedenle başarılı olmaz.

  • Genel olarak dağıtılmış bir veritabanı ortamında, bölge genelinde kesinti olması halinde tutarlılık düzeyi ile veri dayanıklılığı arasında doğrudan bir ilişki vardır. İş sürekliliği planınızı geliştirirken, uygulama kesintiye neden olan bir olaydan (yani RTO) sonra tamamen kurtarılmadan önce kabul edilebilir en uzun süreyi anlamanız gerekir. Ayrıca, kesintiye neden olan bir olaydan (yani RPO) sonra kurtarıldığında uygulamanın kaybetmeyi tolere edebildiği en son veri güncelleştirmelerinin maksimum süresini de anlamanız gerekir. RTO ve RPO hakkında daha fazla bilgi için bkz . Azure Cosmos DB'de tutarlılık düzeyleri.

Azure Cosmos DB bölge kesintisi sırasında bekleyebileceğinizler

Tek bölgeli hesaplar için istemciler, Azure Cosmos DB bölge kesintisi sırasında okuma ve yazma kullanılabilirliği kaybıyla karşılaşır. Birden çok bölgeli hesaplar, aşağıdaki tabloda açıklandığı gibi farklı davranışlarla karşılaşır.

Yazma bölgeleri Hizmet tarafından yönetilen yük devretme Beklentiler Yapılması gereken
Tek yazma bölgesi Etkin değil Güçlü tutarlılık kullanmadığınız bir okuma bölgesinde kesinti olursa, tüm istemciler diğer bölgelere yönlendirilir. Okuma veya yazma kullanılabilirliği kaybı ve veri kaybı yoktur. Güçlü tutarlılık kullandığınızda, ikiden az okuma bölgesinin kalması durumunda okuma bölgesindeki bir kesinti yazma kullanılabilirliğini etkileyebilir.

Yazma bölgesinde bir kesinti varsa, istemciler yazma kullanılabilirliği kaybıyla karşılaşır. Güçlü tutarlılık seçmediyseniz, hizmet bazı verileri kalan etkin bölgelere çoğaltmayabilir. Bu çoğaltma, seçilen tutarlılık düzeyine bağlıdır. Etkilenen bölgede kalıcı veri kaybı yaşanırsa, yapılandırılmamış verileri kaybedebilirsiniz.

Azure Cosmos DB, kesinti sona erdiğinde yazma kullanılabilirliğini geri yükler.
Kesinti sırasında, kalan bölgelerde okuma trafiğini desteklemek için yeterli sağlanan RU olduğundan emin olun.

Kesinti sırasında el ile yük devretme tetiklemeyin , çünkü başarılı olamaz.

Kesinti sona erdiğinde, sağlanan RU'ları uygun şekilde yeniden ayarlayın.
Tek yazma bölgesi Etkin Güçlü tutarlılık kullanmadığınız bir okuma bölgesinde kesinti olursa, tüm istemciler diğer bölgelere yönlendirilir. Okuma veya yazma kullanılabilirliği kaybı ve veri kaybı yoktur. Güçlü tutarlılık kullandığınızda, ikiden az okuma bölgesi kalırsa okuma bölgesinin kesintisi yazma kullanılabilirliğini etkileyebilir.

Yazma bölgesinde bir kesinti varsa, Azure Cosmos DB tercihlerinize göre yeni yazma bölgesi olarak yeni bir bölge seçene kadar istemciler yazma kullanılabilirliği kaybıyla karşılaşır. Güçlü tutarlılık seçmediyseniz, hizmet bazı verileri kalan etkin bölgelere çoğaltmayabilir. Bu çoğaltma, seçilen tutarlılık düzeyine bağlıdır. Etkilenen bölgede kalıcı veri kaybı yaşanırsa, yapılandırılmamış verileri kaybedebilirsiniz.
Kesinti sırasında, kalan bölgelerde okuma trafiğini desteklemek için yeterli sağlanan RU olduğundan emin olun.

Kesinti sırasında el ile yük devretme tetiklemeyin , çünkü başarılı olamaz.

Kesinti sona erdiğinde, yazma bölgesini özgün bölgeye geri taşıyabilir ve sağlanan RU'ları uygun şekilde yeniden ayarlayabilirsiniz. NoSQL için API'yi kullanan hesaplar, çakışma akışınızdan başarısız olan bölgedeki kurtarılmamış verileri de kurtarabilir.
Birden çok yazma bölgesi Uygulanamaz Başarısız bölgedeki son güncelleştirilen veriler kalan etkin bölgelerde kullanılamayabilir. Nihai, tutarlı ön ek ve oturum tutarlılığı düzeyleri 15 dakikadan kısa bir eskime süresi garanti eder. Sınırlanmış eskime durumu, yapılandırmaya bağlı olarak K güncelleştirmelerinden veya T saniyeden daha azını garanti eder. Etkilenen bölgede kalıcı veri kaybı yaşanırsa, yapılandırılmamış verileri kaybedebilirsiniz. Kesinti sırasında, daha fazla trafiği desteklemek için kalan bölgelerde sağlanan RU'ların yeterli olduğundan emin olun.

Kesinti sona erdiğinde, sağlanan RU'ları uygun şekilde yeniden ayarlayabilirsiniz. Mümkünse, Azure Cosmos DB başarısız bölgedeki kurtarılmamış verileri kurtarır. Bu kurtarma, NoSQL için API kullanan hesaplar için yapılandırdığınız çakışma çözümleme yöntemini kullanır. Diğer API'leri kullanan hesaplar için bu kurtarma son yazma kazançlarını kullanır.

Sonraki adımlar

Ardından, aşağıdaki makaleleri okuyabilirsiniz: