base cap 分布式_简单理解CAP-BASE
原標題:簡單理解CAP-BASE
1、CAP
CAP是分布式系統的指導理論,是NoSQL數據庫的理論基石。CAP其實就是對分布式系統的特性總結,即一致性(Consistency)、可用性(Availability)、分區容錯性(Partition tolerance)。
先說一下分區容錯性,就是CAP中的P,這一項其實是必選項,CAP主要用在分布式系統中,所謂分布式就表示有多個服務器或節點,比如數據庫的主從配置。如果不要P,那只是個單機服務,就不需要CAP來指導了。
再說一下數據一致性,就是CAP中C,這一項表示分布式系統中的每個服務或節點對外提供的數據必須得一致,比如數據在A數據庫被修改了,必須立刻同步至其他(比如B)數據庫服務器上。客戶端訪問B數據庫時必須是最新的數據,否則不提供服務。
最后說一下可用性,就是CAP中A,我個人感覺這一項應該是最重要的原則了,搞分布式系統最主要的目的是實現高可用,即一臺服務器崩了,還有其他節點繼續提供服務。同時還能實現數據的安全,比如數據庫同步備份等。
總結一下,其實同時實現數據一致性和可用性是互相矛盾的,想實現可用性,就要放棄數據一致性。分區容錯性是必選的,所以留給我們的選項只有CP或AP。
CP,即實現一致性和分區容錯性,此組合為數據強一致性模式,即要求多服務之間數據一定要一致,犧牲了可用性,比如操作A服務時,就要讓其他服務不可用,一些對數據要求比較高的場景使用此方式,比如涉及金錢等。這種模式性能很低。實現強一致性的方案有2PC(兩階段提交)。
AP,即實現可用性和分區容錯性,此組合為數據最終一致性模式,即要求所有服務都可用,犧牲了數據一致性,比如操作A服務修改數據,同時讀取B服務查詢時發現數據還是舊數據,但過一會數據就會一致,互聯網分布式服務多數基于AP,Base模式也是基于AP組合。實現最終一致性的方案有TCC、消息隊列、Saga等,其中消息隊列用的最多。
2、BASE
BASE,即Basically Available(基本可用)、Soft state(軟狀態)和Eventually consistent(最終一致性)。它是對CAP中一致性和可用性權衡的結果,其來源于對大規模互聯網系統分布式實踐的結論。互聯網中對可用性要求非常高,但對一致性要求要少點,比如發一個消息給用戶,用戶不用立即收到,晚個一兩秒也OK的。所以可以犧牲CAP中C,BASE理論大部分是對AP的補充和權衡。
Basically Available(基本可用),它是要求分布式系統中所有節點要做到高可用。
Soft State(軟狀態),它定義數據可以有一個中間狀態,比如服務A更新數據,讀取B服務時,允許存在一定的延遲,客戶端讀取的為中間狀態。
Eventually Consistent(最終一致性),它允許數據存在中間狀態,做不到強一致性,但要做到最終一致性,比如消息列表多刷幾次,總歸能刷出來。常用實現數據一致性的是用消息隊列,如下圖:
責任編輯:
總結
以上是生活随笔為你收集整理的base cap 分布式_简单理解CAP-BASE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云计算机平台 优势,云计算平台有哪些优势
- 下一篇: sap事务代码如何收藏_一、SAP中添加