高可用架構之分布式快取

2021-08-07 11:39:47 字數 1263 閱讀 2615

為什麼需要快取?

加速請求響應時間,響應延遲小

減少對固化儲存的讀壓力

快取適用場合

靜態資源的快取

較少更改資源的快取

讀多寫少場景

不適合場景

頻繁更新

讀少寫多

高可用架構使用的快取型別有哪些?各自作用是什麼?

本地快取

靜態不變的資料

減少網路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快取結構 我們在處理快取過期這個功能的時候提供了兩種過...