《徹底解決分散式系統一致性問題》學習筆記
阿新 • • 發佈:2018-12-22
《徹底解決分散式系統一致性問題》直播者:李豔鵬 筆記作者:JKXQJ
一致性問題產生的背景
JEE架構:WEB容器—組合業務邏輯—>EJB容器—資料存ORM—>資料庫
SSH架構:Struts MVC—組合業務邏輯—>Spring容器—Hibernate ORM–>資料庫
Web Service: WebService–> 註冊服務(WSDL、UDDI)–>發現服務(UDDI)–> 服務呼叫(SOAP), 解耦,有中心服務,分散式並不推薦
ESB:企業服務匯流排
微服務:倡導REST服務,JSON傳遞資料,現在主流的。
常見的不一致的問題
- 轉賬
- 下訂單和扣庫存
- 同步超時
- 非同步回撥超時
- 調單
- 系統間狀態不一致
- 快取和資料庫不一致
- 本地快取節點間不一致
- 快取資料結構不一致
酸鹼平衡原理
酸鹼平衡原理 ACID
- A:原子性
- C:一致性
- I: 隔離性
- D:永續性
酸鹼平衡-帽子 CAP
- C: 一致性、資料一致更新,所有資料變動都是同步的
- A: 可用性,好的相應效能,完全的可用性是指在任何故障模型下,服務都可以在有限的時間處理相應
- P:分割槽容錯性、可靠性
酸鹼平衡-鹼 Base
BA: 基本可用
S: 軟狀態,狀態可以有一段時間不同步
E: 最終一致,最終資料是一致的就可以了,而不是時時保持一致
分散式一致性協議
兩階段
三階段
TCC
查詢模式
補償模式
定期校對模式
可靠訊息模式
快取一致性模式
同步呼叫模式
訊息模式
同步非同步的抉擇
- 儘量使用非同步來替換同步操作
- 能用同步解決的問題就不要引入非同步化