通過patition key的查詢能夠直接定位到庫,但是非patition key上的查詢可能就需要掃瞄多個庫了。:】
1-4流程:
1)業務方呼叫服務,新增資料
2)服務先插入
t1資料
3)服務再插入
t2資料
4)服務返回業務方新增資料成功:1
)不複雜,服務層由單次寫,變兩次寫
2)資料一致性相對較高(因為雙寫成功才返回):1
)請求的處理時間增加(要插入次,時間加倍)
2)資料仍可能不一致,例如第二步寫入
t1完成後服務重啟,則資料不會寫入
t2,引出常用的第二種方案
】1-6
流程:業務方呼叫服務,新增資料
服務先插入
t1資料
3)服務向訊息匯流排傳送乙個非同步訊息(發出即可,不用等返回,通常很快就能完成)
4)服務返回業務方新增資料成功
5)訊息匯流排將訊息投遞給資料同步中心
6)資料同步中心插入
t2資料:1
)請求處理時間短(只插入1次)
:,引出常用的第三種方案
】1-6
流程:業務方呼叫服務,新增資料
服務先插入
t1資料
3)服務返回業務方新增資料成功
4)資料會被寫入到資料庫的
log中
5)線下服務或者任務讀取資料庫的
log6
)線下服務或者任務插入
t2資料
:請求處理時間短(只插入1次)
:究竟先寫t1還是先寫t2
」的問題?這該怎麼辦呢?
如果出現不一致】,誰先做對業務的影響較小,就誰先執行。
t1和反表
t2,如果發現資料不一致,就進行補償修復。:
:1-4
流程所示:
log1
和日誌log2
,如果發現資料不一致,就進行補償修復::
1-4流程所示:::
強一致性 弱一致性 最終一致性
這種方式在es等分布式系統中也有體現,可以設定主shard提交即返回成功,或者需要replica shard提交成功再返回。提到分布式架構就一定繞不開 一致性 問題,而 一致性 其實又包含了資料一致性和事務一致性兩種情況,本文主要討論資料一致性 事務一致性指acid 複製是導致出現資料一致性問題的唯...
快取設計 一致性優化
一致性是指資料庫和快取裡的資料是一樣的,如果出現兩者不一樣,就說出現了一致性問題。一致性優化是指怎麼消除一致性問題,或者出現了一致性問題怎麼去發現並解決。如果資料庫和快取不一致,會導致系統出現bug,尤其是一些關鍵性的資料,比如餘額。所以在一些不能容忍不一致的場景,是一定要消除不一致的問題。為什麼會...
快取 冗餘表一致性學習記錄
快取命中率 命中的 總的 寫入操作時,更新快取 寫入db 寫入快取 計算簡單的時候,直接更新,增加一次命中率 淘汰快取 寫 入db,只淘汰資料,計算複雜時,比更新操作簡單,但會增加一次不命中 處理時應先寫入快取,再寫入db,如果db失敗,則快取多一次失效。如果先db後快取,這時快取失敗了,則快取資料...