摘要:原則分布式系統(tǒng)中,數(shù)據(jù)一致性和響應(yīng)速度是成反比的。總結(jié)分布式事務(wù)會結(jié)合上面三個概念進行實現(xiàn),在實際開發(fā)中,就是根據(jù)具體業(yè)務(wù)在數(shù)據(jù)一致性和服務(wù)可用性兩者之間進行權(quán)衡。
把個人理解的幾個概念做了一個總結(jié),更貼近開發(fā)工作,更直白通俗的總結(jié)(意味著不嚴謹,但能懂)。
ACID模型單個關(guān)系型數(shù)據(jù)庫就是用這個模型來保障高一致性和可用性的。
Atomicity原子性:一個事務(wù)中所有操作都必須全部完成,要么全部不完成。
Consistency一致性. 在事務(wù)開始或結(jié)束時,數(shù)據(jù)庫應(yīng)該在一致狀態(tài)。
Isolation隔離層. 事務(wù)將假定只有它自己在操作數(shù)據(jù)庫,彼此不知曉。
Durability. 一旦事務(wù)完成,就不能返回。
直白,簡單的去理解
和ACID相反,分布式事務(wù)中我們無法做到強一致。 雖然可能不一致,但每個應(yīng)用都可以根據(jù)自身的業(yè)務(wù)特點,采用適當?shù)姆绞絹硎狗植际较到y(tǒng)數(shù)據(jù)達到最終一致性。
Basically Available基本可用。支持分區(qū)失敗(e.g. sharding碎片劃分數(shù)據(jù)庫)
Soft state軟狀態(tài) 狀態(tài)可以有一段時間不同步,異步。
Eventually consistent最終一致,最終數(shù)據(jù)是一致的就可以了,而不是時時高一致。
CAP原則分布式系統(tǒng)中,數(shù)據(jù)一致性和響應(yīng)速度是成反比的。 要想多個系統(tǒng)數(shù)據(jù)一致,就需要時間進行同步;要想盡快響應(yīng)用戶,就要接受數(shù)據(jù)不一致的情況(往往就是業(yè)務(wù)權(quán)衡)。
CAP定理是由加州大學(xué)伯克利分校Eric Brewer教授提出來的,他指出分布式WEB服務(wù)無法同時滿足一下3個屬性:
數(shù)據(jù)一致性(consistency):如果系統(tǒng)對一個寫操作返回成功,那么之后的讀請求都必須讀到這個新數(shù)據(jù);如果返回失敗,那么所有讀操作都不能讀到這個數(shù)據(jù),對調(diào)用者而言數(shù)據(jù)具有強一致性。
1. 簡單理解: 要往十個系統(tǒng)里每個系統(tǒng)都增加一條數(shù)據(jù),每個子系統(tǒng)上面都進行修改成功,這樣就保證了數(shù)據(jù)一致,但是時間也會延長;
服務(wù)可用性(availability)所有讀寫請求在一定時間內(nèi)得到響應(yīng)
1. 簡單理解: 上面已經(jīng)說到,為了保證數(shù)據(jù)一致性,我們需要延長時間。那為了減少響應(yīng)時間,我們可能先在一個系統(tǒng)內(nèi)增加一條數(shù)據(jù),剩下的九個系統(tǒng)異步去添加,這就是犧牲數(shù)據(jù)一致性,換取可用性;
分區(qū)容錯性(partition-tolerance) - 可靠性在網(wǎng)絡(luò)分區(qū)的情況下,被分隔的節(jié)點仍能正常對外服務(wù),簡單可理解為“可靠性”(兩個系統(tǒng)外界看來就是整體,如果系統(tǒng)不能通信了,成為分區(qū)。 如果不能保證分區(qū)容錯性,則節(jié)點不能正常服務(wù),不能服務(wù)就談不上什么事務(wù)了,所以分區(qū)容錯性是肯定要保證的);
1. 分區(qū)容錯性 的理解:多個系統(tǒng)組成一個分布式系統(tǒng),外界看來這個系統(tǒng)是一個整體,一個區(qū)域。
2. 但是內(nèi)部如果出現(xiàn)網(wǎng)絡(luò)不通的問題,多個子系統(tǒng)就變成了孤島,變成了多個分區(qū),分區(qū)容錯性就是指這種情況是,每個子系統(tǒng)要能夠適應(yīng)這種問題,能正常提供服務(wù),雖然數(shù)據(jù)可能沒同步到其他子系統(tǒng),但總比系統(tǒng)不能訪問要好 。
分布式事務(wù)會結(jié)合上面三個概念進行實現(xiàn),在實際開發(fā)中,就是根據(jù)具體業(yè)務(wù)在 數(shù)據(jù)一致性 和 服務(wù)可用性 兩者之間進行權(quán)衡。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/69217.html
摘要:協(xié)議是為分布式協(xié)調(diào)服務(wù)專門設(shè)計的一種支持崩潰恢復(fù)的一致性協(xié)議,這個機制保證了各個之間的同步。選主是協(xié)議中最為重要和復(fù)雜的過程。以實際效果而言,分區(qū)相當于對通信的時限要求。參考官方文檔阿里巴巴為什么不用做服務(wù)發(fā)現(xiàn)定理的含義阮一峰 前言 同學(xué)們,在上一章中,我們主要講了Zookeeper兩種啟動模式以及具體如何搭建。本章內(nèi)容主要講的是集群相關(guān)的原理內(nèi)容,第一章可以當做是Zookeeper原...
摘要:在結(jié)構(gòu)上引入了頭結(jié)點和尾節(jié)點,他們分別指向隊列的頭和尾,嘗試獲取鎖入隊服務(wù)教程在它提出十多年后的今天,已經(jīng)成為最重要的應(yīng)用技術(shù)之一。隨著編程經(jīng)驗的日積月累,越來越感覺到了解虛擬機相關(guān)要領(lǐng)的重要性。 JVM 源碼分析之 Jstat 工具原理完全解讀 http://click.aliyun.com/m/8315/ JVM 源碼分析之 Jstat 工具原理完全解讀 http:...
摘要:具有不可分割性即原語的執(zhí)行必須是連續(xù)的,在執(zhí)行過程中不允許被中斷。提供服務(wù)主要就是通過數(shù)據(jù)結(jié)構(gòu)原語集機制達到的。子節(jié)點的版本號數(shù)據(jù)節(jié)點版本號版本號創(chuàng)建該節(jié)點的會話的。后位則為遞增序列。 前言 最近加入了部門的技術(shù)興趣小組,被分配了Zookeeper的研究任務(wù)。在研究過程當中,發(fā)現(xiàn)Zookeeper由于其開源的特性和其卓越的性能特點,在業(yè)界使用廣泛,有很多的應(yīng)用場景,而這些不同的應(yīng)用場景...
摘要:作為微服務(wù)的基礎(chǔ)設(shè)施之一,背靠強大的生態(tài)社區(qū),支撐技術(shù)體系。微服務(wù)實踐為系列講座,專題直播節(jié),時長高達小時,包括目前最流行技術(shù),深入源碼分析,授人以漁的方式,幫助初學(xué)者深入淺出地掌握,為高階從業(yè)人員拋磚引玉。 簡介 目前業(yè)界最流行的微服務(wù)架構(gòu)正在或者已被各種規(guī)模的互聯(lián)網(wǎng)公司廣泛接受和認可,業(yè)已成為互聯(lián)網(wǎng)開發(fā)人員必備技術(shù)。無論是互聯(lián)網(wǎng)、云計算還是大數(shù)據(jù),Java平臺已成為全棧的生態(tài)體系,...
閱讀 1598·2021-11-04 16:11
閱讀 3309·2021-09-09 11:33
閱讀 1558·2019-08-30 15:54
閱讀 619·2019-08-30 15:44
閱讀 3174·2019-08-30 15:43
閱讀 2554·2019-08-30 13:06
閱讀 1698·2019-08-29 17:00
閱讀 895·2019-08-29 15:33