Aracılığıyla paylaş


NoSQL için Azure Cosmos DB için dayanıklılık önerileri

Bu makale, NoSQL için Azure Cosmos DB'ye dayanıklılık sağlamaya yönelik öneriler içerir. Önerilerin çoğu uyumlu olmayan kaynakları tanımlamaya yardımcı olmak için Desteklenen Azure Kaynak Grafı (ARG) sorgularını içerir.

Dayanıklılık önerileri matrisi etkiler

Her öneri aşağıdaki etki matrisi ile uyumlu olarak işaretlenir:

Görsel Etki Açıklama
Yüksek Anında düzeltme gerekiyor.
Orta 3-6 ay içinde düzeltin.
Düşük Gözden geçirilmesi gerekiyor.

Dayanıklılık önerileri özeti

Kategori Öncelik Öneri
Kullanılabilirlik Yüksek kullanılabilirlik için en az iki bölge yapılandırma
Olağanüstü durum kurtarma Tek yazma bölgesi olan çok bölgeli hesaplar için hizmet tarafından yönetilen yük devretmeyi etkinleştirme
Çok bölgeli yazma özelliğini değerlendirme
Veri dayanıklılığı gereksinimlerini yansıtan uygun tutarlılık modunu seçme
Sürekli yedekleme modunu yapılandırma
Sistem verimliliği Sorgu sonuçlarının tamamen boşaltıldığından emin olun
İstemcinizde tekil deseni koruma
Uygulama dayanıklılığı İstemcinizde yeniden deneme mantığını uygulama
İzleme Cosmos DB sistem durumunu izleme ve uyarıları ayarlama

Kullanılabilirlik

Yüksek kullanılabilirlik için en az iki bölge yapılandırma

Daha yüksek SLA elde etmek için Cosmos DB'nizde ikincil bir bölgeyi etkinleştirmek çok önemlidir. Bunun yapılması kapalı kalma süresine neden olmaz ve haritada raptiye seçmek kadar kolaydır. Güçlü tutarlılık kullanan Cosmos DB örneklerinin, bir bölge hatası olduğunda yazma kullanılabilirliğini korumak için en az üç bölge yapılandırması gerekir.

Olası avantajlar: SLA'yı ve dayanıklılığı geliştirir.

Daha fazla bilgi edinin: SQL Yok için Cosmos DB'de güvenilirlik (Yüksek kullanılabilirlik)

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
     array_length(properties.locations) < 2 or
    (array_length(properties.locations) < 3 and properties.consistencyPolicy.defaultConsistencyLevel == 'Strong')
| project recommendationId='cosmos-1', name, id, tags

Olağanüstü durum kurtarma

Tek yazma bölgesi olan çok bölgeli hesaplar için hizmet tarafından yönetilen yük devretmeyi etkinleştirme

Cosmos DB yüksek çalışma süresine ve dayanıklılığa sahiptir. Yine de sorunlar ortaya çıkabilir. Hizmet Tarafından Yönetilen yük devretme ile bir bölge kapatılırsa Cosmos DB otomatik olarak bir sonraki kullanılabilir bölgeye geçer ve kullanıcı eylemi gerektirmez.

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    array_length(properties.locations) > 1 and
    tobool(properties.enableAutomaticFailover) == false and
    tobool(properties.enableMultipleWriteLocations) == false
| project recommendationId='cosmos-2', name, id, tags

Çok bölgeli yazma özelliğini değerlendirme

Çok bölgeli yazma özelliği, tutarlılık gereksinimlerine ve çakışma çözümüne dikkat edilmesini gerektirse de, birden çok bölgede yüksek oranda kullanılabilir uygulamalar tasarlamaya olanak tanır. Yanlış kurulum kullanılabilirliği azaltabilir ve işlenmeyen çakışmalar nedeniyle veri bozulmasına neden olabilir.

Olası avantajlar: Yüksek kullanılabilirliği artırır.

Daha fazla bilgi edinin:

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    array_length(properties.locations) > 1 and
    properties.enableMultipleWriteLocations == false
| project recommendationId='cosmos-3', name, id, tags

Veri dayanıklılığı gereksinimlerini yansıtan uygun tutarlılık modunu seçme

Genel olarak dağıtılmış bir veritabanında tutarlılık düzeyi, bölgesel kesintiler sırasında veri dayanıklılığını etkiler. Kurtarma planlaması için veri kaybına dayanıklılık hakkında bilgi edin. Daha güçlü bir değer gerekmediği sürece Oturum tutarlılığını kullanın, daha yüksek yazma gecikme süreleri ve salt okunur kesintilerden olası yazma bölgesi etkisini kabul edin.

Olası avantajlar: Veri dayanıklılığını ve kurtarmayı geliştirir.

Daha fazla bilgi edinin: Azure Cosmos DB'de tutarlılık düzeyleri

Sürekli yedekleme modunu yapılandırma

Cosmos DB'nin yedeklemesi her zaman açık olduğundan veri aksiliklerine karşı koruma sağlar. Sürekli mod, düzenli moddan farklı olarak microsoft desteğine başvurmayı gerektiren ve daha uzun geri yükleme sürelerine yol açan bir önceden mishap noktasına self servis geri yükleme sağlar.

Olası Avantajlar: Daha hızlı self servis veri geri yükleme.

Daha fazla bilgi edinin: Azure Cosmos DB'de belirli bir noktaya geri yükleme özelliğiyle sürekli yedekleme

Resources
| where type =~ 'Microsoft.DocumentDb/databaseAccounts'
| where
    properties.backupPolicy.type == 'Periodic' and
    properties.enableMultipleWriteLocations == false and
    properties.enableAnalyticalStorage == false
| project recommendationId='cosmos-5', name, id, tags

Sistem verimliliği

Sorgu sonuçlarının tamamen boşaltıldığından emin olun

Cosmos DB'nin 4 MB yanıt sınırı vardır ve bu da büyük veya bölüme yayılan sorgular için sayfalandırılmış sonuçlara yol açar. Her sayfada kullanılabilirlik gösterilir ve sonraki sayfa için bir devam belirteci sağlanır. Tamamlanıncaya kadar tüm sayfalarda geçiş yapmak için kodda bir while döngüsü gereklidir.

Olası Avantajlar: Veri alma verimliliğini en üst düzeye çıkarır.

Daha fazla bilgi edinin: SQL Yok için Azure Cosmos DB'de sayfalandırma.

İstemcinizde tekil deseni koruma

Her hesap ve uygulama için SDK istemcisinin tek bir örneğini kullanmak, bağlantılar istemciye bağlı olduğundan çok önemlidir. İşlem ortamlarının açık bağlantılarda sınırı vardır ve bu sınır aşıldığında bağlantıyı etkiler.

Olası Avantajlar: Bağlantıları ve verimliliği iyileştirir.

Daha fazla bilgi edinin: Azure Cosmos DB SDK'ları ile dayanıklı uygulamalar tasarlama.

Uygulama dayanıklılığı

İstemcinizde yeniden deneme mantığını uygulama

Cosmos DB SDK'ları, yeniden denemeler aracılığıyla birçok geçici hatayı otomatik olarak yönetir. Buna rağmen, uygulamaların SDK'ların genel olarak ele alamayabileceği belirli durumları hedefleyen ek yeniden deneme ilkeleri uygulayarak daha güçlü bir hata işleme sağlaması çok önemlidir.

Olası Avantajlar: Hata işleme dayanıklılığını artırır.

Daha fazla bilgi edinin: Azure Cosmos DB SDK'ları ile dayanıklı uygulamalar tasarlama.

İzleme

Cosmos DB sistem durumunu izleme ve uyarıları ayarlama

Azure Cosmos DB kaynaklarının kullanılabilirliğini ve yanıt hızını izlemek ve iş yükünüz için uyarılar ayarlamak iyi bir uygulamadır. Bu, öngörülemeyen olayları işlemede proaktif kalmanızı sağlar.

Olası Avantajlar: Proaktif sorun yönetimi.

Daha fazla bilgi edinin: Azure İzleyici kullanarak Azure Cosmos DB için uyarılar oluşturma