資料冗餘一致性優化

2021-08-21 01:14:28 字數 992 閱讀 4442

通過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後快取,這時快取失敗了,則快取資料...