分布式系統解決方案(五) 快取的選擇

2021-10-07 09:07:13 字數 709 閱讀 2233

描述:

快取雪崩是指快取中資料大批量到過期時間,而查詢資料量巨大,引起資料庫壓力過大甚至down機。

解決方案:

1、快取資料的過期時間設定隨機,防止同一時間大量資料過期現象發生。

2、如果快取資料庫是分布式部署,將熱點資料均勻分布在不同搞得快取資料庫中。

3、設定熱點資料永遠不過期。

描述:

快取穿透是指快取和資料庫中都沒有的資料,而使用者不斷發起請求,如發起為id為「-1」的資料或id為特別大不存在的資料。這時的使用者很可能是攻擊者,攻擊會導致資料庫壓力過大。

解決方案:

1、介面層增加校驗,如使用者鑑權校驗,id做基礎校驗,id<=0的直接攔截;

2、從快取取不到的資料,在資料庫中也沒有取到,這時也可以將key-value對寫為key-null,快取有效時間可以設定短點,如30秒(設定太長會導致正常情況也沒法使用)。這樣可以防止攻擊使用者反覆用同乙個id暴力攻擊

描述:

快取擊穿是指快取中沒有但資料庫中有的資料(一般是快取時間到期),這時由於併發使用者特別多,同時讀快取沒讀到資料,又同時去資料庫去取資料,引起資料庫壓力瞬間增大,造成過大壓力

解決方案:

1、設定熱點資料永遠不過期。

2、加互斥鎖,互斥鎖參考**如下:

分布式系統事務解決方案選擇

解決方案一 使用 alibaba seata 可以來解決 但是該種解決方案 不適合 大併發情況下,會影響效能,使用於管理後台各個微服務呼叫的增刪改查的事務管理 解決方案二 使用 mq 來解決,保證資料的最終一致性 如 在電商系統中,當下乙個訂單後,要扣減庫存,我們先遠端呼叫 庫存介面,有可能會出現,...

分布式快取 原因與解決方案

快取雪崩 現象描述 快取雪崩,是指在某乙個時間段,快取集中過期失效。在快取集中失效的這個時間段對資料的訪問查詢,都落到了資料庫上,對於資料庫而言,就會產生週期性的壓力波峰。解決方案 為了避免快取雪崩的發生,我們可以將快取的資料設定不同的失效時間,這樣就可以避免快取資料在某個時間段集中失效。例如對於熱...

分布式系統解決方案(三) 分布式事務選擇

1 原子性 atomicity 操作這些指令時,要麼全部執行成功,要麼全部不執行。只要其中乙個指令執行失敗,所有的指令都執行失敗,資料進行回滾,回到執行指令前的資料狀態。eg 拿轉賬來說,假設使用者a和使用者b兩者的錢加起來一共是20000,那麼不管a和b之間如何轉賬,轉幾次賬,事務結束後兩個使用者...