筆記-分布式系統(tǒng)一致性問題(二)

酸堿平衡理論

酸(ACID)堿(BASE)平衡中的酸指的就是事務的ACID四個特性隅要,也是保證關系型數據庫強一致性的基礎;堿可以拆分為BA(基本可用)董济、S(軟狀態(tài))步清、E(最終一致)三個方面,解決了分布式系統(tǒng)中對高可用和數據一致的問題虏肾。

下面將對ACID和BASE進行介紹和一些案例的講解

ACID

眾所周知廓啊,ACID代表了事務的四個特性,即原子性封豪、一致性谴轮、隔離性、持久性吹埠。

具有ACID的數據庫支持強一致性第步,即數據庫本身不會出現不一致的情況,每個事務都是原子的缘琅,要么成功要么失敗粘都,不同事務之間互相隔離不受影響,且數據最后會持久化落盤胯杭,因此數據庫會從一個明確的狀態(tài)轉移到另一個明確的狀態(tài)驯杜,中間的臨時狀態(tài)是不會影響數據的最終結果的受啥,一般是通過多版本控制協(xié)議(MVCC)來實現的做个。

針對前一篇文章中提到的案例1,我們可以使用關系型數據庫來實現數據的一致性」鼍郑現在我們假設有兩張表居暖,分別為庫存表和訂單表,那么我們一次下單的事務如下

// 開啟一個事務
start transaction with CONSISTENT SNAPSHOT;
// 插入一條訂單
insert into order_1(id, sp_id, status) values (2,'ttt',0);
// 查詢商品庫存
select count from kucun where sp_id = 'ttt';
// 更新庫存(失敗則回滾)
update kucun set count = count - 1 where sp_id = 'ttt';
// 下單成功(失敗則回滾)
update order_1 set status = 1 where id = 2;
// 提交事務
commit;

可以看出這是一個強一致性的事務藤肢,庫存或者下單失敗太闺,都會回滾當前事務,且更新時會持有行鎖嘁圈,該行記錄也不會被其他事務更新掉省骂。在數據量小的系統(tǒng)中蟀淮,可以采用這種方案。

在互聯(lián)網大規(guī)模钞澳、高并發(fā)的場景下怠惶,單機系統(tǒng)性能瓶頸容易達到上限,因此必須用到拆分的理念轧粟,數據庫拆分策略一般是分庫分表策治,那么在分庫分表后如果還是想使用ACID特性的話,就必須把同一商品的訂單和庫存都映射到同一個數據庫分片上兰吟。但是現實往往事與愿違通惫,由于業(yè)務規(guī)則的限制,我們很可能無法將相關數據分到同一個數據庫分片混蔼,這時就需要實現最終一致性履腋。

CAP(帽子理論)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拄丰,隨后出現的幾起案子府树,更是在濱河造成了極大的恐慌,老刑警劉巖料按,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奄侠,死亡現場離奇詭異,居然都是意外死亡载矿,警方通過查閱死者的電腦和手機垄潮,發(fā)現死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闷盔,“玉大人弯洗,你說我怎么就攤上這事》旯矗” “怎么了牡整?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長溺拱。 經常有香客問我逃贝,道長,這世上最難降的妖魔是什么迫摔? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任沐扳,我火速辦了婚禮,結果婚禮上句占,老公的妹妹穿的比我還像新娘沪摄。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布杨拐。 她就那樣靜靜地躺著祈餐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哄陶。 梳的紋絲不亂的頭發(fā)上昼弟,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音奕筐,去河邊找鬼舱痘。 笑死,一個胖子當著我的面吹牛离赫,可吹牛的內容都是我干的芭逝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼渊胸,長吁一口氣:“原來是場噩夢啊……” “哼旬盯!你這毒婦竟也來了?” 一聲冷哼從身側響起翎猛,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤胖翰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后切厘,有當地人在樹林里發(fā)現了一具尸體萨咳,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年疫稿,在試婚紗的時候發(fā)現自己被綠了培他。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡遗座,死狀恐怖舀凛,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情途蒋,我是刑警寧澤猛遍,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站号坡,受9級特大地震影響懊烤,放射性物質發(fā)生泄漏。R本人自食惡果不足惜筋帖,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一奸晴、第九天 我趴在偏房一處隱蔽的房頂上張望冤馏。 院中可真熱鬧日麸,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗡综,卻和暖如春乙帮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背极景。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工察净, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盼樟。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓氢卡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晨缴。 傳聞我的和親對象是個殘疾皇子译秦,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容

  • 1 背景 一致性是一個抽象的、具有多重含義的計算機術語击碗,在不同應用場景下筑悴,有不同的定義和含義。在傳統(tǒng)的IT時代稍途,一...
    新強吖閱讀 453評論 0 2
  • 背景 當我們的單個數據庫的性能產生瓶頸的時候阁吝,為了降低單點壓力,我們可能會對數據庫進行分庫械拍,分片求摇,將數據庫就處于不...
    PENG先森_曉宇閱讀 1,410評論 1 0
  • 問題的起源 在電商等業(yè)務中,系統(tǒng)一般由多個獨立的服務組成殊者,如何解決分布式調用時候數據的一致性与境? 具體業(yè)務場景如下,...
    hemny閱讀 1,826評論 0 7
  • 也許 命中早已安排 我想你 你在 你來了 不用擔心我會離開 我是一只折了翅膀的小鳥 而你 總能看到我飛翔的樣子 我...
    薄荷和酒L閱讀 143評論 2 2
  • [原創(chuàng)]會消失的營銷 作者:袁小彤 前幾天去一老寫字樓辦事猖吴,驚喜的發(fā)現竟然還保留有電梯操作員摔刁,記得在很小的時候,我...
    yxtt閱讀 143評論 0 0