快取技術方案改造思考
這是我對一個正在進行的重構專案,快取技術方案改造點之一的一個想法:
rc現有的實時快取(其實也是準實時,失效時間的存在)設計:
存在的問題:現有的實時快取方案(也並非真正意義上的實時,快取失效時間的存在),與上游核心系統耦合度較高,核心系統強依賴下游欠核心系統,而且目前的查詢服務效能也存在問題,比如區域銷售豆腐塊介面返回的資料量大,並且從tair->rc,rc->delivery需要經過兩次網路傳輸,這之間網路傳輸及序列化、反序列化消耗大,而且出現問題時,由於排查鏈路和時間週期都長;
升級方案的的思考:解耦上游核心系統(如delivery)與資源中心的HSF服務,rc維護資料庫資料與tair(ldb)叢集資料的一致性(準實時),外部系統的查詢直連tair(ldb),不走rc的HSF服務,實現rc系統的讀寫分離,初步設計如下:
這裡之所以選擇ldb是因為它tair持久化的儲存引擎,使用ssd盤儲存資料,保證了資料的安全不丟失,並且讀寫效能遠遠高於db;
藉助TTD中介軟體指定一臺機器執行定時任務,定時任務將db中上一次定時任務結束到這一定時任務開始前變化的資料,從資料庫中篩選出來,根據這些資料匹配列表ldb對應中key,針對每一個value值變化的key都去db中撈出key對應的新value值,然後invalid 目前ldb中的value,然後將新value put到ldb中,這樣就維護了,資料庫與ldb資料的一致性;
rc的讀client(如delivery)需要前置mdb快取從ldb中拿到的資料(訪問量巨大的話,如不做mdb快取,ldb壓力很大),查詢的時候首先去查詢mdb,若有資料,則直接返回,若沒有再去查詢ldb,在這個設計中,讀client不需要呼叫任何rc的查詢服務,rc應用只是負責db與ldb資料的一致性,實現了讀client與rc的解耦,上游的如delivery這樣核心系統不再需要依賴下游的欠核心的rc系統,交易鏈路精簡;
這個設計存在的問題:還沒法做到完全的實時(定時間隔的存在),選擇一個較為合理的定時間隔,平衡系統解耦的好處與實時查詢的犧牲,實現準實時的系統解耦,還是值得的;
各位看到此文章的大牛,請幫忙評估一下此改造方案的可行性及改造方案的優缺點,期待各位給出寶貴的建議,謝謝大家!
相關文章
- Redis 快取雪崩,快取擊穿和快取穿透技術方案總結Redis快取穿透
- 快取技術快取
- IPv6改造方案:隧道技術
- IPv6改造方案:雙棧技術
- Python快取技術Python快取
- 位元組快取技術快取
- 快取技術淺談快取
- ASP快取技術 (轉)快取
- 系統效能提升利刃 | 快取技術使用的實踐與思考快取
- 前端常用的快取技術前端快取
- IPv6改造方案:協議轉換技術協議
- 技術派中的快取一致性解決方案快取
- HTML5中快取技術HTML快取
- 從WebView快取聊到Http 的快取機制 | 掘金技術徵文WebView快取HTTP
- 小工匠聊架構 - 分散式快取技術_快取設計架構分散式快取
- 前端效能優化之快取技術前端優化快取
- 快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- 系統效能提升利刃 | 快取技術使用快取
- PHP 中 9 大快取技術總結PHP快取
- 飛豬Flutter技術演進及業務改造的實踐與思考總結Flutter
- 快取穿透、快取擊穿、快取雪崩概念及解決方案快取穿透
- REDIS快取穿透,快取擊穿,快取雪崩原因+解決方案Redis快取穿透
- 【Redis】快取穿透,快取擊穿,快取雪崩及解決方案Redis快取穿透
- 快取穿透、快取擊穿、快取雪崩區別和解決方案快取穿透
- 分散式快取方案分散式快取
- 搞懂分散式技術15:快取更新的套路分散式快取
- 搞懂分散式技術13:快取的那些事分散式快取
- Android技術積累:圖片快取管理Android快取
- 如何設計快取系統:快取穿透,快取擊穿,快取雪崩解決方案分析快取穿透
- 關於大型網站技術演進的思考(十二)--網站靜態化處理—快取(4)網站快取
- 零信任技術思考
- 技術演技的思考
- 一點技術思考
- Redis 快取穿透、快取雪崩原理及解決方案Redis快取穿透
- 中科三方IPv6改造方案技術答疑:IPv6轉換的兩種技術方式
- 對快取擊穿的一點思考快取
- Java技術分享:如何設計一個本地快取?Java快取
- 前端優化:瀏覽器快取技術介紹前端優化瀏覽器快取