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
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:
- Azure Cosmos DB ile verilerinizi küresel ölçekte dağıtma
- Birden çok yazma bölgesi kullanılırken çakışma türleri ve çözüm ilkeleri
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin