1. 程式人生 > 其它 >千萬級購物車系統快取架構方案

千萬級購物車系統快取架構方案

本文主要介紹redis在千萬級系統中設計架構方案,包括主架構設計、快取一致性方案、大value處理方案和redis限流和故障恢復降級方案

快取架構主架構圖:

主架構中包括快取叢集、快取限流、快取大value處理、HotKey探測系統、redis故障恢復降級和redis-mysql資料同步

快取一致性解決方案:

一、對於所有的DB操作都不去新增具體的刪除快取的操作,而是通過canal監聽binlog的方式
二、待資料確認已提交到資料庫後,通過監聽的變化,解析出對應的資料後,過濾掉非增刪改的
binlog
三、然後通過常量類配置的需要處理資料一致性的相關表以及關鍵欄位和快取字首key,進行組裝出需要進行刪除的快取key。並且通過mq的ack機制來保證快取一定會被刪除掉。

快取限流解決方案:

防止redis崩潰之後,系統無法正常運轉,所以我們需要做一個降級處理。
系統操作redis的所有方法一般都是通過RedisCache和Redislock兩個類來處理的,所以我們通過AOP切面的方式,對這兩個類中的所有方法做一個切面,如果在這裡執行redis操作的時候,redis掛掉了,連線失敗了,那麼方法會拋異常,我們在切面處理方法上,捕捉異常,然後記錄一下是redis掛掉還是網路暫時的波動

大Value處理方案:

一、搭建的redis叢集
二、在canal中已經建立好了監聽,儲存到mysql中redis_large_key_log表的canal instance
三、在每天凌晨3點,會將Redis中的大key(value)資料,通過canal instance傳送到 MQ
四、消費redis_large_key_log表的binlog資料,該資料包含Redis的大key(value)資訊
五、將大value切分成多個key,返回時拼接組裝

轉自:點選領取https://www.dianjilingqu.com/