Yüksek Eş Zamanlılık Mimarisi Serisi: Dağıtılmış tutarlılığın ayrıntılı açıklaması ACID, CAP, BASE

Ali Java mülakat soruları genellikle CAP, BASE ve diğer ilgili dağıtılmış teoriler hakkında sorar. Bugün, ağırlıklı olarak dağıtılmış tutarlılıkla ilgili teorileri sunuyorum: güçlü tutarlılık, nihai tutarlılık, ACID, CAP, BASE vb. Dağıtık veri tutarlılığının teknik çözümü daha sonra ayrıntılı olarak tanıtılacaktır.

01

-

Dağıtılmış tutarlılığın arka planı

Dağıtılmış işlemlerin ortaya çıkmasıyla birlikte, geleneksel tek makineli işlem modeli (ACID), özellikle yüksek trafikli, yüksek eşzamanlı İnternet dağıtılmış sistemi için artık yeterli değildir.

Kesin tutarlılığa ihtiyaç duyarsak, muhtemelen sistem kullanılabilirliğinden ödün vermemiz gerekir ve bunun tersi de geçerlidir.

Hem kullanılabilirliği hem de tutarlılığı dikkate alan dağıtılmış bir sistemin nasıl kurulacağı, sayısız Java mühendisinin tartıştığı zor bir sorun haline geldi.

02

-

Dağıtılmış veri tutarlılığının kaynağı

Tutarlılık, dağıtık sistemlerde her zaman çok önemli bir konu olmuştur.

Depolama sisteminde veri kaybını önlemek için verileri saklayacağız.

Verilerin kalıcılığı, kesinti süresinin neden olduğu veri kaybı sorununu önleyebilir, ancak tek bir makinenin kalıcı arıza sorununu çözemez. Bir altyapı olarak, tek bir makinede depolama sistemi kalıcılığı yeterli olmaktan uzaktır.Sistemin kullanılabilirliğini ve güvenilirliğini artırmak için verileri birden çok makineye kopyalamamız gerekir.

Veriler birden çok düğüme kopyalandığında, bir tutarlılık sorunu ortaya çıkar.

03

-

Dağıtılmış veri tutarlılığı seviyesi

1. Güçlü tutarlılık

En güçlü tutarlılık modelidir, herhangi bir okuma işleminin en son değeri okumasını gerektirir, başka bir deyişle, herhangi bir yazma işleminin hemen tüm işlemlerle senkronize edilmesini gerektirir.

2. Zayıf tutarlılık

Bu tutarlılık seviyesi, sistemin yazılı değerin yazma başarılı olduktan hemen sonra okunabileceğini vaat etmemesini kısıtlar ve kısa süre içinde verilerin ne kadar süre tutarlı olacağını vaat eder, ancak belirli bir zaman seviyesine (ikinci seviye gibi) mümkün olduğunca çok şey sağlayacaktır. ), veriler tutarlı bir duruma ulaşabilir.

3. Nihai tutarlılık

Nihai tutarlılık, zayıf tutarlılığın özel bir durumudur.Sistem, belirli bir süre içinde veri tutarlı bir duruma ulaşılmasını sağlayacaktır.

Nihai tutarlılığın burada ayrı ayrı önerilmesinin nedeni, zayıf tutarlılıkta şiddetle tavsiye edilen bir tutarlılık modeli olması ve aynı zamanda endüstrinin büyük dağıtılmış sistemlerde veri tutarlılığı için önerdiği bir model olmasıdır.

04

-

Tutarlılıkla ilgili teoriler

ASİT

ACID, veritabanı (MySQL) işlemlerinin doğru yürütülmesi için karşılanması gereken dört özelliğin kısaltmasıdır.

1. Atomiklik (atomiklik)

Bir işlemin tüm işlemleri tamamlanmış veya tamamlanmamıştır.

Sözde işlem, bir dizi veri işleminden oluşan eksiksiz bir mantıksal süreci ifade eder. Örneğin, bir banka havalesi işlemi iki işlemden oluşur: tutarın kaynak hesaptan düşülmesi ve tutarı hedef hesaba ekleme.

2. Tutarlılık (Tutarlılık)

İşlem başlamadan önce ve işlem bittikten sonra verilerin bütünlük kısıtlamalarını ifade eder.

İki anlamı vardır:

a) Veritabanı mekanizması seviyesinde, işlemin yürütülmesinden önce ve sonra veriler, benzersiz kısıtlamalar ve yabancı anahtar kısıtlamaları gibi ayarlanan kısıtlamaları karşılayabilir;

b) İşletme düzeyinde, uygulama geliştiriciler iş tutarlılığını sağlar. Banka havalesini örnek olarak alırsak, A ve B hesaplarının bakiyelerinin havale öncesi ve sonrası aynı olması gerekir.

3. İzolasyon (izolasyon)

Veritabanı, birden çok eşzamanlı işlemin çapraz yürütülmesinden kaynaklanan veri tutarsızlıklarını önleyebilir.

4. Dayanıklılık (kalıcılık)

İşlem sona erdikten sonra, verilerin değiştirilmesi kalıcıdır ve önceki duruma geri döndürülmez.

CAP teorisi

Dağıtılmış bir sistemde, ACID veritabanının benzer özellikleri vardır, yani CAP, bunlar:

1. Tutarlılık

Grup düğümündeki verilerin tutarlı olduğunu vurgulayın. Dağıtımda tutarlılık, güçlü tutarlılık ve zayıf tutarlılığı içerir Güçlü tutarlılık, herhangi bir zamanda herhangi bir düğüm tarafından görülen verilerin aynı olduğu anlamına gelir;

Zayıf tutarlılığın genel olarak anlaşılması nihai tutarlılıktır, yani başlangıçta farklılıklar olabilir, ancak zamanla nihai veriler tutarlı kalır.

2. Kullanılabilirlik

Kümenin herhangi bir zamanda normal kullanımda olduğunu vurgulayın

3. Bölüm Tolerans bölümü hata toleransı

Kümenin bir parçası kırılsa bile, diğer parçası yine de normal şekilde çalışabilir.

Bu üç özellik, diğerinin pahasına sadece ikisini tatmin edebilir. Bu aynı zamanda çoğu sistem için de geçerlidir:

Genel olarak konuşursak, dağıtılmış kümeler P önceliğini garanti eder, yani kümenin bazı düğümlerinin nekrozu tüm kümenin kullanımını etkilemez ve ardından C ve A'yı takip eder. Çünkü P-bölüm kullanılabilirliğinden vazgeçerseniz, birden çok geleneksel veritabanını doğrudan kullanmak daha iyidir. Aslında, birçok mikro hizmet alt veritabanı ve tablo aynıdır.

Güçlü bir tutarlılık peşinde koşarsanız, bu kaçınılmaz olarak kullanılabilirlikte düşüşe yol açacaktır. Örneğin, Master-Slave senaryosunda, Master, verilerin yazılmasından ve ardından her bir düğüme dağıtılmasından sorumludur.Tüm düğümler, yazılmadan önce başarıyla yazılır.Bu, güçlü tutarlılık sağlar, ancak gecikme de artarak kullanılabilirlik ile sonuçlanır. azaltın.

Bu nedenle, kullanılabilirlik ve tutarlılık arasında, zamanlama tutarlılığı, nihai tutarlılık vb. Gibi çeşitli çözümler ortaya çıkmıştır.

BASE teorisi

BASE teorisi, CAP teorisinin bir uzantısıdır. Temel fikir, güçlü tutarlılık elde edilemese bile (Güçlü Tutarlılık, CAP tutarlılığı güçlü tutarlılıktır), uygulamaların nihai tutarlılığı elde etmek için uygun yöntemleri kullanabileceğidir (Nihai Tutarlılık).

BASE Temelde Kullanılabilir, Yumuşak Durum, Nihai Tutarlılık anlamına gelir.

1. Temel Olarak Kullanılabilir

Temel kullanılabilirlik, dağıtılmış bir sistem arızalandığında, kullanılabilirliğin bir kısmının kaybolmasına, yani çekirdeğin mevcut olmasının garanti edildiği anlamına gelir.

E-ticaret yükseldiğinde, trafikteki artışla başa çıkmak için bazı kullanıcılar sürüm düşürme sayfasına yönlendirilebilir ve hizmet katmanı yalnızca sürüm düşürme hizmetleri sağlayabilir. Bu, kısmi kullanılabilirliğin kaybının bir tezahürüdür.

2. Yumuşak Durum

Esnek durum, sistemin bir ara duruma sahip olmasına izin vermeyi ifade eder ve ara durum, sistemin genel kullanılabilirliğini etkilemez.

Dağıtılmış depolamada, genellikle bir veri parçasının en az üç kopyası vardır Farklı düğümler arasında kopyaların senkronizasyonuna izin veren gecikme, yumuşak durumun bir tezahürüdür. Mysql replikasyonunun zaman uyumsuz replikasyonu da bir tezahürdür.

3. Nihai Tutarlılık

Nihai tutarlılık, sistemdeki tüm veri kopyalarının belirli bir süre sonra tutarlı bir duruma ulaşabileceği anlamına gelir. Zayıf tutarlılık, güçlü tutarlılığın tersidir Nihai tutarlılık, zayıf tutarlılığın özel bir durumudur.

BASE ve ACID, birbirine taban tabana zıt iki tasarım konseptini temsil eder.ACID, tutarlılığa odaklanır ve geleneksel ilişkisel veritabanlarının (MySQL) tasarım felsefesidir, BASE ise yüksek kullanılabilirliğe odaklanır.

Günümüzün büyük ölçekli, çapraz veri merkezi dağıtılmış sistemlerinin çoğu (bulut bilişim gibi) bu iki tasarım kavramını aynı anda benimser ve ikisi arasında bir denge arar.

-son-

Gree cips mi çalışıyor? Dünyanın en iyi malzemesi olarak bilinir
önceki
500 günlük kullanımın ardından sorunsuz olduğu iddia edilen Huaweiin en iyi işlemcisi burada
Sonraki
Ali P8 Mimar Konuşması: Dağıtılmış Sistemde Küresel Benzersiz Kimliğin Tanıtımı ve Özellikleri
[Serie A] Juventus deplasmanda 2-0 Cagliari, Keane arka arkaya gol attı
Wang Jianlin'in beklemediği şey, Jack Ma'nın "yeni perakende" dönemi geldi
Cep telefonu asla kapanmayacak, üretici bir cep telefonu şarjı artefaktı geliştirdi
Juventus deplasmanda 2-0 Cagliari, Keane gol attı
Tek noktadan danışmanlık Çocuğum kötü öksürürse ne yapmalıyım? Safra kesesi taşları nasıl tedavi edilir?
Beklenen beyaz özel baskı geliyor. Arctis Pro GameDAC tushang
Google VoLTE'yi dağıtmaya başladı, ancak üç büyük yerel operatör hala geziniyor
2018'e geri bakış ping Xi Jinping'in yılı
En iyi on WeChat dolandırıcılık vakasına göz atın, geçen yıl aldanmayın!
Tek elle ve irfan kaçıran Wu Lei'nin iyi performansı sadece bir gol borçlu
[Premier Lig] Her kurt kazanır! On kişilik Manchester United, Wolves'a 1-2 kaybetti, Smalling kendi başına
To Top