1. nosql數據庫總括
關係型數據庫不適合在分佈式環境中的向外擴展,難以支持高併發讀寫
Nosql數據庫易於數據的分散、提升性能和增大規模、模式自由、擴展性好
2. CAP理論:
C: Consistency 一致性
A: Availability 可用性
P: Tolerance of network Partition 分區容忍性
CAP理論:一個分佈式系統不可能滿足一致性,可用性和分區容錯性這三個需求,最多隻能同時滿足兩個
3. NRW模型
N 數據所具有的副本數
R 完成讀操作所需要讀取的最小副本數
W完成寫操作所需要寫入的最小副本數
R+W>N就可以保證強一致性,讀取的數據節點和被同步寫入的節點是有重疊的。
如果要高的一致性,那麼就配置N=W,R=1,這個時候可用性特別是寫操作的性能就會大大降低
如果想要高的可用性,那麼此時就需要放鬆一致性的要求,此時可以配置W=1,這樣使得寫操作延遲最低,同時通過異步的機制更新剩餘的N-W個節點
W = Q, R = Q where Q = N / 2 + 1 一般應用適用,讀寫性能之間取得平衡,如N=3,W=2,R=2
4. 兩階段提交協議
投票階段
在請求階段,協調者將通知事務參與者準備提交或取消事務,然後進入表決過程
在表決過程中,參與者將告知協調者自己的決策:同意(事務參與者本地作業執行成功)或取消(本地作業執行故障)
提交階段
協調者將基於第一個階段的投票結果進行決策:提交或取消。當且僅當所有的參與者同意提交事務協調者才通知所有的參與者提交事務,否則協調者將通知所有的參與者取消事務
缺點:同步阻塞、單點故障、數據不一致、二階段無法解決的問題
5. BASE模型
Basically Availble --基本可用
Soft-state --軟狀態/柔性事務
Eventual Consistency --最終一致性
BASE模型完全不同於ACID模型,犧牲高一致性,獲得可用性或可靠性