為什麼需要快取?
加速請求響應時間,響應延遲小
減少對固化儲存的讀壓力
快取適用場合
靜態資源的快取
較少更改資源的快取
讀多寫少場景
不適合場景
頻繁更新
讀少寫多
高可用架構使用的快取型別有哪些?各自作用是什麼?
本地快取
靜態不變的資料
減少網路i/o互動
程序內快取
和程序相關的動態資料
動態變化資料
不適合固化儲存
分布式快取
快取相對靜態的資料
快取資料量大 單機無法存放
提高查詢速度
高可用架構使用分布式快取型別?如何選擇?
memcached
redis
自主研發
業務場景
簡單的key-value
-memcached
複雜的key-value
-計數、鍊錶、集合、雜湊等
-redis
效能要求
redis單機效能更好
高可用架構快取冗餘如何設計?
快取高可用保證
快取7*24
防止穿透到資料庫,對資料庫衝擊
快取不高可用保證
快取就是快取
一旦快取不可用 查詢資料庫
那麼問題來,資料會不會掛?
高可用架構快取一致性如何保證?
多份資料副本,資料一致性問題存在
資料庫、多份快取
強一致性較難
分布式鎖 分布式事務
追求最終一致性
網際網路的特點
先更新快取再更新資料庫
快取成功 資料庫失敗 資料儲存錯誤
先更新資料庫再更新快取
資料庫成功 快取失敗 快取髒資料
可行方案
更新資料庫 delete 快取
1秒鐘後 再次失效快取項
設定快取項expired time
失敗記錄日誌
指令碼定期修正
讀請求讀快取 命中直接返回
不命中 讀資料庫 把結果會填快取
高可用架構快取命中率如何保證?
業務不同命中率不同
命中率80%+
相對靜態資料快取
快取時間長些
定期檢視快取命中情況,適當調整快取物件
高可用架構快取設計最佳實踐是什麼?
業務特點 選用多級快取
快取高可用保證
快取宕機 資料庫最大壓力評估
分布式架構 高可用
本文將通過自建架構圖 進行講解 如圖採用了分布式 微服務架構,將傳統系統進行重構後的效果 微服務架構體系對多個層面進行探索 分析和優化,本文不在詳細闡述 微服務 分布式架構根據公司 企業需求定製化構造而來,目的細化模組間的呼叫,鏈路更加清晰明了,不同環節高可用方案不同,優化手段也存在差異。分析思考 ...
架構設計之分布式快取
1 前言 我們在開發系統的過程中,快取是個有用的模組。下面我就把我們的快取模組給大家做個簡單介紹。2 類圖 看不清楚?這裡檢視原圖 大圖 3 簡單介紹 快取分為兩個部分。乙個是快取結構乙個是儲存結構。快取結構主要解決物件什麼時候過期而儲存結構主要解決物件儲存到什麼地方。3.1快取結構 我們在處理快取...
架構設計之分布式快取
1 前言 我們在開發系統的過程中,快取是個有用的模組。下面我就把我們的快取模組給大家做個簡單介紹。2 類圖 3 簡單介紹 快取分為兩個部分。乙個是快取結構乙個是儲存結構。快取結構主要解決物件什麼時候過期而儲存結構主要解決物件儲存到什麼地方。3.1快取結構 我們在處理快取過期這個功能的時候提供了兩種過...