Eventual Consistency-數據一致性

背景

分佈式事務框架
	重量級
	[1]基於XA協議的兩階段提交2PC方案		存在問題:	協議通信帶來的高延遲、時間損耗;最終一致性需要使用異步校驗兜底
	[2]基於支付寶的TCC方案
	[3]基於ebay的消息隊列異步去報方案
	輕量級
	[1]冪等/重試			恢復不一致數據
	[2]狀態機			
	[3]恢復日誌
	[4]異步校驗
	評價標準
	[1]消息可靠性
	[2]業務侵入
CAP理論		任何聯網共享數據系統只能同時滿足2個屬性。
	[1]一致性	Consistency			每次讀取都會收到最新寫入、或者錯誤						【可選項】
	[2]可用性	Avaliability		每個請求都會受到一個不是錯誤的響應						【可選項】
	[3]分區容忍性	Partition Tolerance	節點之間的網絡丟棄、延遲任意數量的消息,系統仍可繼續運行		【必選項】
Base原則			AP、CP
	[1]Basically Available	基本可用
	[2]Soft State			軟狀態
	[3]Eventual consistency	最終一致性

重試

同步重試		
	[1]同步等待,佔用系統線程資源
	[2]流量放大,可能導致系統雪崩
異步重試
	[1]時間間隔		隨其重試次數指數增長
	[2]重試閾值		超過之後,報警通知

可用性保障
	[0]服務可用性	98%
	[1]一次重試		99.96%		3個9
	[2]兩次重試		99.9992%	5個9

冪等

定義		相同操作執行多次,同執行一次,產生效果一樣。
分類	
	[1]天然冪等		查詢、刪除
	[2]人爲冪等		TCP超時重傳
實現方案
	[1]基於記錄的悲觀鎖
	[2]基於記錄版本號、狀態機的樂觀鎖
	[3]基於數據庫唯一索引的去重表
	[4]基於全局唯一標識token

狀態機

恢復日誌

異步校驗

重試

微服務系統
	同步調用		TCC		分佈式事務
	異步調用		MQ		可靠消息最終一致性方案

可靠消息最終一致性方案

解決角度
	[1]可靠消息
	[2]最終一致性

核心流程

一、上游服務投遞消息
	Step1	
	Step2
	Step3
	Steo4
二、下游服務接收消息

三、100%可靠投遞消息—上游服務

四、100%可靠接收消息—下游服務

五、RocketMQ實現方案
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章