大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 分布式數據庫架構和原理

分布式數據庫架構和原理

更新時間:2021-08-17 10:08:32 來源:動力節點 瀏覽970次

分布式數據庫簡介

分布式數據庫定義為一群分布在計算機網絡上、邏輯上相互關聯的數據庫。分布式數據庫管理系統(分布式DBMS)則是支持管理分布式數據庫的軟件系統,它使得分布對于用戶變得透明。有時,分布式數據庫系統(Distributed Database System,DDBS)用于表示分布式數據庫和分布式DBMS這兩者。

分布式數據庫架構及原理

1.CAP理論

首先,分布式數據庫是基于單點關系數據庫的基本特性的繼承,主要涉及事務的ACID特性、事務日志的容災恢復性、數據冗余的高可用性幾個要點。

其次,分布式數據設計必須遵循CAP定理:分布式系統不能同時滿足 一致性(Consistency) 、可用性(Availability) 、分區容忍性(Partition tolerance) 這三個基本需求,最多滿足其中的兩項, 由于分區容錯性是絕對不能拋棄的,因此需要考慮業務情況在可用性和一致性之間做出權衡。

CAP三個特性描述如下 :

一致性(Consistency):確保分布式群集中的每個節點都必須返回相同的 、最近更新的數據 。一致性是指每個客戶端具有相同的數據視圖。有多種類型的一致性模型 , CAP中的一致性是指線性化或順序一致性,是強一致性。

可用性(Availability):每個非失敗節點在合理的時間內返回所有讀取和寫入請求的響應。為了可用,網絡分區兩側的每個節點必須能夠在合理的時間內做出響應。

分區容忍性(Partition tolerance):盡管存在網絡分區,系統仍可繼續運行并 保證 一致性。網絡分區已成事實。保證分區容忍度的分布式系統可以在分區修復后從分區進行適當的恢復。

根據實際業務情況, 分布式系統會根據業務對一致性和可用性需求的重要等級提供最佳解決方案,但通常一致性等級會更高,也是最有挑戰的 。

2.BASE理論

權衡CAP定理演進出了 BASE理論 ,BASE是Basically Available(基本可用)、Soft state(軟狀態)和Eventually consistent(最終一致性)三個短語的縮寫。

BASE理論的核心思想:由于某些原因無法做到強一致性,但每個應用都可以根據其自身業務特點,采用適當的方式來達到最終一致性。

BA(Basically Available): 基本可用,分布式系統在出現故障的時候,允許損失部分可用性,即保證核心可用。

S(Soft State): 軟狀態,允許系統存在中間狀態,而該中間狀態不會影響系統整體可用性。

E(Consistency):最終一致性,系統中的所有數據副本經過一定時間后,最終能夠達到一致的狀態。

BASE 理論本質上是對 CAP 理論的延伸,是對 CAP 中 AP 方案的一個補充。

這里補充說明一下什么是強一致性:

Strict Consistency ( 強一致性 ) 也稱為Atomic Consistency ( 原子一致性) 或 Linearizable Consistency(線性一致性) ,必須滿足以下 兩個要求:

(1)任何一次讀都能讀到某個數據的最近一次寫的數據。

(2)系統中的所有進程,看到的操作順序,都和全局時鐘下的順序一致。

對于關系型數據庫,要求更新過的數據能被后續的訪問都能看到,這是強一致性。簡言之,在任意時刻,所有節點中的數據是一樣的。

BASE理論的最終一致性屬于弱一致性。

接下來介紹另一個分布式數據庫重要的概念:分布式事務。瀏覽了幾篇介紹分布式事務的文章,發現會有不同的描述,但大致含義是相同的。分布式事務首先是事務, 需要滿足事務的ACID的特性。主要考慮業務訪問處理的數據分散在網絡間的多節點上,對于分布式數據庫系統而言, 在保證數據一致性的要求下,進行事務的分發、協同多節點完成業務請求。

多節點能否正常、順利的協同作業完成事務是關鍵,它直接決定了訪問數據的一致性和對請求響應的及時性。從而就需要科學有效的一致性算法來支撐。

3.一致性算法

一致性算法 包括2PC 、3PC 、Paxos 、Raft 等四種:

2PC / 3PC 協議用于保證屬于多個數據分片上操作的原子性。

這些數據分片可能分布在不同的服務器上,2PC / 3PC 協議保證多臺服務器上的操作要么全部成功,要么全部失敗。

二階段提交2PC (Two-Phase Commit ): 用來保證分布式系統數據的一致性的一致性協議,大部分基于關系型數據庫的分布式事務處理都是采用二階段提交協議來完成。其優點是原理簡單且實現方便,缺點是同步阻塞、單點問題、數據不一致、太過保守。

2PC主要包括以下兩個階段:

第一階段:提交事務請求(投票階段)

第二階段:執行事務提交(執行階段)

為了避免在通知所有參與者提交事務時,其中一個參與者 crash 不一致時,就出現了三階段提交的方式。

三階段提交 3PC(Three- Phase Commi ):包括 CanCommit、PreCommit、doCommit 三個階段。顯而易見,三階段提交是在兩階段提交的基礎上增加了一個 preCommit 的過程,當所有參與者收到 preCommit 后,并不執行動作,直到收到 commit 或超過一定時間后才完成操作。

其優點是降低參與者阻塞范圍,并能夠在出現單點故障后繼續達成一致;缺點是引入preCommit 階段,在這個階段如果出現網絡分區,協調者無法與參與者正常通信,參與者依然會進行事務提交,造成數據不一致。

Paxos 、 Raft 算法用于保證同一個數據分片的多個副本之間的數據一致性 。以下是兩種種算法的描述 :

Paxos (強一致性)算法屬于多數派算法,主要目的是解決數據分片的單點問題, 通過該算法可以讓整個集群的節點對某個值的變更達成一致。任何一個節點都可以提出要修改某個數據的提案,是否通過這個提案取決于這個集群中是否有超過半數的節點同意,因此Paxos算法需要集群中的節點必須是單數 。

Raft算法是簡化版的Paxos, 定義了三種角色 Leader、Follower、Candidate:最初都是Follower,當Follower監聽不到Leader,就自動成為Candidate,然后發起投票選出新的Leader 。因此,Raft 劃分成三個子問題:

Leader Election
Log Replication
Safety

其有兩個基本過程:

① Leader選舉:每個 Candidate隨機經過一定時間都會提出選舉方案,最近階段中得票最多者被選為Leader;

② 同步log:Leader會找到系統中log(各種事件的發生記錄)最新的記錄,并強制所有的follow來刷新到這個記錄。

Raft一致性算法是通過選出一個leader來簡化日志副本的管理,例如,日志項(log entry)只允許從leader流向follower。

以上就是動力節點小編介紹的"分布式數據庫架構和原理",希望對大家有幫助,想了解更多可查看Java分布式應用教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: ab毛片| 亚洲天堂一区二区三区 | 99久久综合给久久精品 | 午夜小网站 | 亚洲国产一区二区三区最新 | 欧美激情在线精品三区 | 深夜日韩| 国产成人精品综合久久久 | 高清视频一区 | 国产在线精品观看一区 | 国产麻豆精品高清在线播放 | 亚洲视频在线播放 | 欧美日韩你懂的 | porno日本xxxx | 日韩综合 | 亚洲va国产日韩欧美精品色婷婷 | 亚洲一级免费毛片 | www.狠狠艹| 欧美毛片又粗又长又大 | 成人在线观看一区 | 成人午夜天 | 国产成人毛片亚洲精品不卡 | 久久久久久国产精品三级 | 久久伊人操 | 亚洲精品毛片久久久久久久 | 国产精品免费网站 | 在线观看www. | 成人国产在线看不卡 | 欧美aa一级片 | 咪咪色在线视频 | 欧美激情在线免费观看 | 奇米狠狠操 | 一级精品视频 | 最新欧美精品一区二区三区不卡 | 久久久久久久久久综合情日本 | 国产精品免费综合一区视频 | 五月伊人 | 久久www免费人成看片入口 | 手机看片高清国产日韩片 | 成在线人永久免费播放视频 | 精品九九久久国内精品 |