1. TCC (Try, Confirm, Cancel) ? ?實時
2. 消息最終一致性 ? ? ? ? ? ? ? ? ? 異步
3. 最大努力通知型事務(按規律進行通知,不保證數據一定能通知成功,但會提供可查詢操作接口進行核對)
事務:一組可靠、獨立的工作單元
ACID:Atomicity(原子性) ?Consistency(一致性) ?Isolation(隔離性) ?Durability(持久性)
難點: 高度并發,資源分布,大時間跨度
本地事務:事務由資源管理器(如:DBMS)本地管理
優點:支持嚴格的ACID屬性,可靠,高效,狀態可只在資源管理器維護
局限:不具備分布事務處理能力,隔離的最小單元由資源管理器決定,如數據庫中的一條數據
全局事務(DTP模型):事務由全局事務管理器全局管理
事務管理器:管理全局事務狀態與參與的資源,協同資源的一致提交/回滾
TX協議:應用或應用服務器與事務管理器的接口
XA協議:全局事務管理器與資源管理器的接口
兩階段提交(Two Phase Commit)
準備操作與ACID : A準備后,仍可提交和回滾 ?C準備時,一致性檢查必須OK
? ? ? ? ? ? ? ? I準備后,事務結果仍然只在事務內可見 ? ?D準備后,事務結果已經持久化
局限:協議成本(準備操作是一定必須的嗎)
? ? ? ? ? 準備階段的持久成本
? ? ? ? ? 全局事務的持久成本
? ? ? ? ? 潛在故障點多帶來的脆弱性
? ? ? ? ? 準備后,提交前的故障引發一系列隔離與恢復難題
跨域的全局事務(DTP模型)
問題:1. 事務上下文如何跨域傳遞
? ? ? ? ? ?2. 多事務管理器如何協同
? ? ? ? ? ?3. 異構事務域間的標準是什么
通信資源管理器:管理事務域間與事務域內的通信,允許全局事務跨域傳遞
XA+協議:是XA的超集,增加指令使事務管理器間可以相互協同
局限:更高協議成本、脆弱,故障點多,故障影響大,恢復困難,復雜,更多框架與平臺約束
原則:真正重要的是滿足業務需求,而不是追求抽象、絕對的系統特性
帽子戲法:兩只手最多能拿幾頂帽子?
酸堿平衡:ACID-BASE Balance
服務模式:可查詢模式、幕等模式、TCC操作、可補償模式
復合模式:定期校對、可靠消息、TCC、補償
帽子戲法--CAP定理:對于共享數據系統,只能同時擁有一下三項中的兩個
a. Consistency(一致性):所有用戶看到一致的數據
b. Availability(可用性):總能找到一個可用的數據副本
c. Tolerance to Network Partition(分區容忍性): 即使在系統被分區的情況下,仍能滿足上述的2點
酸堿平衡--BASE:Basic Availability(基本可用性) ? Soft state(柔性狀態) ? Eventtuall consistency(最終一致性)