Aracılığıyla paylaş


MongoDB için Azure Cosmos DB sanal çekirdeğinde yüksek kullanılabilirlik

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB sanal çekirdeği

Bölge içi yüksek kullanılabilirlik (HA), kümedeki her parçanın hazır bekleyen çoğaltmalarını koruyarak veritabanı kapalı kalma süresini önler. Bir parça herhangi bir nedenle yanıt vermezse MongoDB sanal çekirdeği için Azure Cosmos DB, başarısız olan parçadan gelen bağlantıları beklemeye alır. Yük devretme gerçekleştiğinde, yükseltilen parçalar zaman uyumlu çoğaltma aracılığıyla her zaman yeni verilere sahip olur.

Bir kümedeki tüm birincil parçalar, parçalar arasında daha iyi gecikme süresi için tek bir kullanılabilirlik alanında (AZ) sağlanır. Hazır bekleyen parçalar başka bir kullanılabilirlik alanına sağlanır.

HA etkinleştirilmemiş olsa bile, her düğümün Azure Depolama hizmeti tarafından tutulan üç zaman uyumlu çoğaltmaya sahip kendi yerel olarak yedekli depolama alanı (LRS) vardır. Üç çoğaltma da kümenin Azure bölgesinde bulunur. Tek bir çoğaltma hatası varsa, Azure Depolama hizmeti bunu algılar ve başarısız çoğaltmayı saydam bir şekilde yeniden oluşturur. LRS depolama dayanıklılığı için bu sayfadaki ölçümlere bakın.

HA etkinleştirildiğinde, MongoDB için Azure Cosmos DB sanal çekirdeği kümedeki her birincil parça için bir bekleme parçası çalıştırır. Her birincil ve hazır bekleyen parça aynı işlem ve depolama yapılandırmasına sahiptir. Birincil ve hazır bekleyen, zaman uyumlu çoğaltmayı kullanır. Bu çoğaltma türü, kümenizdeki birincil ve bekleme parçaları üzerinde her zaman aynı verilere sahip olmanıza olanak tanır. Özetle, hizmetimiz birincil parçalarda bir hata algılar ve sıfır veri kaybıyla bekleme düğümlerine yük devreder.

Yük devretmelerden bağımsız olarak küme bağlantı dizesi her zaman aynı kalır. Bu, hizmetin uygulamalardan gelen istekleri sunan fiziksel parçalardaki değişiklikleri soyutlamasına olanak tanır.

Küme oluşturma zamanında yüksek kullanılabilirlik etkinleştirilebilir. MongoDB için Azure Cosmos DB sanal çekirdek kümesinde de yüksek kullanılabilirlik etkinleştirilebilir ve devre dışı bırakılabilir. MongoDB sanal çekirdek kümesi için Azure Cosmos DB'de yüksek kullanılabilirlik etkinleştirildiğinde veya devre dışı bırakıldığında veritabanı kapalı kalma süresi yoktur.

Yük devretme sırasında ne olur?

Her parça yük devretme üç aşamadan oluşur: Kullanılamama algılama, bekleme parçasına geçme ve hazır bekleyen parçanın yeniden oluşturulması. Hizmet, düzenli sistem durumu denetimi yaparak kümedeki her birincil ve bekleme parçası için sürekli kullanılabilirlik izlemesi gerçekleştirir. Sistem durumu denetimi, parçanın yanıt vermemeye başladığı ve başarısız olduğu bildirilmesi gerektiğini güvenilir bir şekilde gösterdiğinde, bekleyen parçaya gerçek yük devretme (anahtar) başlatılır.

Geçiş aşamasında veritabanı okuma ve yazma işlemleri bekleme parçasına yönlendirilir. Her birincil ve bekleme parçası arasında zaman uyumlu çoğaltma, hazır bekleyen parçanın her zaman birincil parçayla aynı veri kümesine sahip olmasını sağlar. Bu, tüm yük devretmelerin sıfır veri kaybıyla gerçekleştirilmesini sağlar. Bekleme moduna geçme işlemi, okumalar için kapalı kalma süresi olmadan gerçekleştirilir. Yazma işlemleri, geçiş aşamasında iç hizmet yeniden denemeleri gerektirebilir. Bu yeniden denemeler, uygulama tarafında yazma yavaşlığı olarak görülebilir.

Parça yük devretmesi tamamlandıktan sonra küme tamamen çalışır duruma gelir. Özgün yüksek oranda kullanılabilir yapılandırmaya geri dönmenin son adımı, hazır bekleyen parçanın yeniden oluşturulmasıdır. Bu hazır bekleyen parça yeniden oluşturma işlemi, birincil parça üzerinde kapalı kalma süresi veya performans etkisi olmadan gerçekleştirilir.