26uuu国产日韩综合_少妇精品久久久_亚洲v中文字幕_综合国产视频_www亚洲天堂_日韩国产欧美在线视频_黄色网页在线免费看_国产精品麻豆欧美日韩ww_国产成人免费9x9x人网站视频_国产精品色哟哟网站

作家
登錄

架構思維之緩存雪崩的災難復盤

作者: 來源: 2022-02-09 15:31:08 閱讀 我要評論

   1 真實案例

  云辦公系統用戶實時信息查詢功能優化發布之后,系統發生宕機事件(系統掛起,頁面無法加載)。

  1.1 背景

  我們IM原有的一個功能,當鼠標移動到用戶頭像的時候,會顯示出用戶的基本信息。信息比較簡單,只包含簡單的用戶名、昵稱、性別、郵箱、電話等基本數據,

  這是一個典型的數據查詢,大概過程如下左側,訪問用戶基本信息的時候會先去Redis中查一下,如果不存在,就把大約2W左右的用戶數據一次性取出來,保存在Redis中,因為用戶基本信息在同一張表上,用戶信息表的數據量也很少,所以一直也沒什么問題。

  過程如下圖左側所示。

  

 

  后續對功能做了優化,原有采集的信息除了用戶的基本信息之外,還采集了教育經歷、工作經歷、所獲勛章等。

  這些信息存儲在不同的表里面,所以采集過程是一個復雜的聯表查詢,特別是有些基礎表數據量比較大,執行效率也是比較慢的。

  如果把所有用戶全部取出來并存儲在一個Redis節點中,明顯已經不適用,一個是批量查詢導致數據庫執行效率慢,一個是Redis單節點數據太大。

  所以開發同學做了下優化,每次只取單個用戶的綜合信息存在Redis中,一個用戶建一個緩存,如上圖右側所示。

  1.2 問題處理

  這種做法看著沒啥問題,當晚發布后,在第二天的上午10點~11點就發生了系統瓶頸卡頓,最后掛起的情況,數據庫的內存、CPU全部飆上去了。

  第一時間的處理方法是降級,程序回滾到之前只提供基本信息的階段,其他的前端默認顯示空信息。接著就是對問題進行分析了,后確認原因是產生了 緩存雪崩了。

  新發布的系統,緩存池是空的,在早上10點高峰期的時候,大量的人員到IM上進行訪問,系統開始初次建立每個人的緩存信息,大量的請求查詢不到緩存,直接透過緩存池投向數據庫,造成瞬時DB請求量井噴。這是典型的緩存雪崩了。

  同時因為,失效時間相近(8小時失效),所以也有潛在的緩存雪崩。

  應急處理方案:適當處理緩存的機制,采用布隆過濾器、空初始值、隨機緩存失效時間方式來預防緩存擊穿和緩存雪崩的產生。

  最終解決方案:改回原來緩存全公司員工信息的方式,根據執行計劃和SlowLog,優化獲取員工信息的SQL腳本,去掉不需要的字段和無意義的連接。

  2 緩存雪崩

  2.1 概念

  緩存雪崩是指大量的key設置了相同的過期時間,導致在緩存在同一時刻全部失效,造成瞬時DB請求量大、壓力驟增,引起雪崩。

  上面的哪個問題,初次訪問的數據都是未建立緩存的,跟同時失效的情況一樣,當峰值期到來的時候,會大量的請求查詢不到緩存,直接透過緩存池投向數據庫,造成瞬時DB請求量井噴。

  2.2 解決方案分析

  2.2.1 緩存集群+數據庫集群

  在系統容量設計的時候,應該能夠預見后期會有大量的請求,所以在發生雪崩前對緩存集群實現高可用,如果是使用 Redis,可以使用 主從+哨兵 ,Redis Cluster 來避免 Redis 全盤崩潰的情況。

  同樣的,也需要對數據庫進行高可用保障,因為透過緩存之后,真正考驗的是數據庫的抗壓能力。所以 1主N從 甚至 數據庫集群 是我們需要重點去考慮的。

  2.2.2 適當的限流、降級

  可以使用 Hystrix進行限流 + 降級 ,比如像上面那種情況,一下子來了1W個請求,不是當前系統的吞吐能力能夠承受的,假設單秒TPS的能力只能是 5000個,那么剩余的 5000 請求就可以走限流邏輯。

  可以設置一些默認值,然后調用我們自己降級邏輯去FallBack,保護最后的 MySQL 不會被大量的請求掛起。 除了Hystrix之外,阿里的Sentinel 和 Google的RateLimiter 都是不錯的選擇。

  Sentinel 漏桶算法

  

 

  RateLimiter 令牌桶算法

  

 

  另外可以考慮使用用本地緩存來進行緩沖,在 Redis Cluster 不可用的時候,不至于全線崩潰。

  2.2.3 隨機過期時間

  可以給緩存設置過期時間時加上一個隨機值時間,使得每個key的過期時間分布開來,不會集中在同一時刻失效。

  隨機值我們團隊的做法是:n * 3/4 + n * random() 。所以,比如你原本計劃對一個緩存建立的過期時間為8小時,那就是6小時 + 0~2小時的隨機值。

  這樣保證了均勻分布在 6~8小時之間。如圖:

  

 

  2.2.4 緩存預熱

  類似上面的那個案例,并不是還沒過期,而是新功能發布,壓根還沒建設過緩存,所以可以在峰值期之前先做好部分緩存,避免瞬時壓力太大。

  所以如果10點是峰值期,那么可以預先在8~10點期間,可以逐漸的把大部分緩存建立起來。如圖:

  

 

  3 緩存穿透

  3.1 概念

  緩存穿透是指訪問一個不存在的key,緩存不起作用,請求會穿透到DB,流量井噴時會導致DB掛掉。

  比如 我們查詢用戶的信息,程序會根據用戶的編號去緩存中檢索,如果找不到,再到數據庫中搜索。如果你給了一個不存在的編號:XXXXXXXX,那么每次都比對不到,就透過緩存進入數據庫。

  這樣風險很大,如果因為某些原因導致大量不存在的編號被查詢,甚至被惡意偽造編號進行攻擊,那將是災難。

  3.2 解決方案分析

  3.2.1 緩存空值

  發生穿透的原因是緩存中沒有存儲這些空數據的key,或者壓根這個數據的key是不會存在的,從而導致每次查詢都進入數據庫中。

  我們就可以將這些key的值設置為null,并寫到緩存池中。后面再出現查詢這個key 的請求的時候,直接返回null,這樣就在緩存池中就被判斷返回了,壓力在緩存層中,不會轉移到數據庫上。

  3.2.2 BloomFilter

  我們稱作布隆過濾器,BloomFilter 類似于一個hbase set 用來判斷某個元素(key)是否存在于某個集合中。

  這種方式在大數據場景應用比較多,比如 Hbase 中使用它去判斷數據是否在磁盤上。還有在爬蟲場景判斷url 是否已經被爬取過。

  這種方案可以加在第一種方案中,在緩存之前在加一層 BloomFilter ,把存在的key記錄在BloomFilter中,在查詢的時候先去 BloomFilter 去查詢 key 是否存在,如果不存在就直接返回,存在再走查緩存 ,投入數據庫去查詢,這樣減輕了數據庫的壓力。

  流程圖如下:

  

 

  3.2.3 兩種方案的選擇判斷

  前面說過,可能會存在一些惡意攻擊,偽造出大量不存在的key ,這種情況下如果我們如果采用緩存空值的辦法,就會產生大量不存在key的null數據。顯然是不合適的,這時我們完全可以使用第二種方案進行過濾掉這些key。

  所以,判斷的依據是:

  針對key非常多、請求重復率比較低的數據,我們就沒有必要進行緩存,使用 BloomFilter 直接過濾掉。

  而對于空數據的key有限的,重復率比較高的,我們則可以采用 緩存空值的辦法 進行處理。

  4 緩存擊穿

  4.1 概念

  一個存在的key,在緩存過期的一刻,同時有大量的請求,這些請求都會擊穿到DB,造成瞬時DB請求量大、壓力驟增。(注意跟上面兩種的區別)

  4.2 解決方案

  4.2.1 鎖的方式

  分布式鎖場景,在訪問key之前,采用SETNX(set if not exists)來設置另一個短期key來鎖住當前key的訪問,訪問結束再刪除該短期key。

  這種現象是多個線程同時去查詢數據庫的這條數據,那么我們可以在第一個查詢數據的請求上使用一個 互斥鎖來鎖住它。

  其他的線程走到這一步拿不到鎖就等著,等第一個線程查詢到了數據,然后做緩存。后面的線程進來發現已經有緩存了,就直接走緩存。

  鎖不好的地方就是在其他線程在拿不到鎖的時候就等待,這個會造成系統整體吞吐量降低,用戶體驗度也不好。

  4.2.2 空初始值

  這是一種短暫降級的方式:

  如果一個緩存失效的時候,有無數個請求狂奔而來,而第一個請求從進入緩存池,判空,再到數據庫檢索,再查詢出結果并返回設置緩存的這個過程里,緩存是不存在的。

  這個就很危險,超高并發下這個短暫的過程足已讓千千萬萬請求投向數據庫。更別提這可能是個慢查詢,整個過程可能長達2s以上,那對數據庫是一種非常大的傷害。

  業內有一種做法叫做空初始值,短暫的局部降級來保證整個數據庫系統不被擊穿。大概流程如下:

  

 

  可以看出,整個過程中我們犧牲了A、B、C、D的請求,他們拿回了一個空值或者默認值,但是這局部的降級卻保證整個數據庫系統不被擁堵的請求擊穿。

  這也是我面試中最喜歡問候選人的緩存類問題。

  以上就是架構思維之緩存雪崩的災難復盤的詳細內容,更多關于緩存雪崩災難的資料請關注腳本之家其它相關文章!


  推薦閱讀

  蝴蝶優化算法及實現源碼

群智能算法學習筆記筆記內容和仿真代碼可能會不斷改動 如有不當之處,歡迎指正算法簡介蝴蝶優化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一種元啟發式智能算法。該算法受到了蝴蝶覓>>>詳細閱讀


本文標題:架構思維之緩存雪崩的災難復盤

地址:http://www.ssyurd.com/kaifa/yejie/41187.html

關鍵詞: 探索發現

樂購科技部分新聞及文章轉載自互聯網,供讀者交流和學習,若有涉及作者版權等問題請及時與我們聯系,以便更正、刪除或按規定辦理。感謝所有提供資訊的網站,歡迎各類媒體與樂購科技進行文章共享合作。

網友點評
自媒體專欄

評論

熱度

精彩導讀
欄目ID=71的表不存在(操作類型=0)
国产人妖乱国产精品人妖| 亚洲日本中文| 久久九九电影| 欧美日韩高清一区二区不卡| 成人午夜小视频| 初高中福利视频网站| 日本xxxxxwwwww| 日韩和欧美一区二区三区| 欧美电影影音先锋| 国产主播一区二区三区四区| 蜜乳av中文字幕| 天堂va在线高清一区| 91免费国产在线| 日韩在线欧美在线| 国产中文字幕乱人伦在线观看| 中文字幕在线日本| 欧美日韩1区2区3区| 一本一道久久a久久精品综合蜜臀| 国产精品久久久久久亚洲影视| 91香蕉国产线在线观看| 吉吉日韩欧美| 成熟亚洲日本毛茸茸凸凹| 亚洲人成在线免费观看| 青青视频免费在线| 精品无码一区二区三区的天堂| 黄色成人在线网址| 欧美日韩欧美一区二区| 美国av一区二区三区| 国产一二三四区| 成人综合久久| 日韩欧美亚洲一二三区| 99久久99久久| 青青草华人在线视频| 人人精品视频| 亚洲在线一区二区三区| 国产欧美一区二区三区在线| 欧美一区二区三区成人精品| 综合欧美亚洲| 亚洲欧美偷拍三级| 日韩免费观看网站| 影音先锋人妻啪啪av资源网站| 97色婷婷成人综合在线观看| 久久久久久亚洲综合| 久久久久久国产精品美女| www.com黄色片| 欧美电影网站| 91在线视频网址| 欧美激情欧美激情在线五月| 中文 日韩 欧美| 国产精品99| 国产午夜精品久久久久久免费视 | 国产精品自在欧美一区| 国产午夜精品视频| 成人黄色片视频| 午夜av免费观看| 91在线视频免费观看| 欧美激情网站在线观看| 一级 黄 色 片一| 国产精品日本一区二区三区在线 | 中文字幕 欧美 日韩| 激情久久免费视频| 亚洲欧美日韩国产综合在线| 成人激情视频网| 亚洲视频重口味| 久久久久亚洲| 欧美一级在线观看| 久久久久久久久网| 国模私拍视频在线| 成人禁用看黄a在线| 久久人人爽人人| 国产草草浮力影院| 三级精品视频| 色嗨嗨av一区二区三区| 日韩精品电影网站| 91精品中文字幕| 国产乱子轮精品视频| 欧美成人国产va精品日本一级| 成人性生交视频免费观看| 51亚洲精品| 狠狠干狠狠久久| 日韩欧美在线一区二区| 中文字幕 人妻熟女| 精品一区二区综合| 欧美精品videos另类日本| 国产精品久久久久久亚洲av| 亚洲三级网页| 欧美日韩国产高清一区二区三区 | 国产乱叫456在线| 国产成人在线免费观看| 国内精品一区二区三区四区| 少妇真人直播免费视频| 99成人超碰| 亚洲成人黄色在线观看| 日本成人黄色网| 国产视频一区二区在线播放| 亚洲宅男天堂在线观看无病毒| 免费久久99精品国产自| ,一级淫片a看免费| www.欧美日韩国产在线| 国产精品色悠悠| 激情五月婷婷在线| 久久一区二区三区四区五区| 久久久国产视频| 丰满少妇一区二区三区| 国产精品成人一区二区不卡| 精品成人一区二区| 手机看片福利日韩| 国产精品任我爽爆在线播放| 91电影在线观看| 国产91沈先生在线播放| 国产一区二区三区影视| 亚洲国产成人tv| 亚洲资源在线网| 亚洲黄色网址| 亚洲一区日韩精品中文字幕| 日韩高清国产精品| 国产成人精品一区二区无码呦| 久久亚洲欧美国产精品乐播| 97伦理在线四区| 亚洲大片免费观看| 成人av电影在线网| 成人网在线免费看| 国产乱码77777777| 99久久精品一区二区| 成人有码视频在线播放| 亚洲大片免费观看| 91麻豆免费看片| 丁香五月网久久综合| 在线观看毛片网站| 国产亚洲综合av| 久久99九九| 刘玥91精选国产在线观看| 亚洲欧洲性图库| 日本不卡久久| 欧美成人a交片免费看| 性做久久久久久| 免费网站在线观看视频| 国产精区一区二区| 欧美久久久影院| 超碰在线人人爱| 精品国精品国产自在久国产应用| 亚洲国产日韩欧美在线图片| a级大片免费看| 亚洲无中文字幕| 日韩一区二区福利| 538精品视频| 日本午夜精品视频在线观看| 日本a级片电影一区二区| 日韩精品久久久久久久| 成人a免费在线看| 国产经品一区二区| 高潮毛片7777777毛片| 亚洲一区精品在线| 国产91在线亚洲| 一本色道69色精品综合久久| 日韩午夜电影在线观看| 国产一级二级av| 国产精品a级| 欧美激情免费视频| 日本一区二区不卡在线| 播五月开心婷婷综合| 国产日韩在线一区二区三区| 女人18毛片一区二区三区| 亚洲成人综合网站| 欧美a v在线播放| 精品一区三区| 在线观看国产精品淫| 懂色av蜜桃av| 国产呦精品一区二区三区网站| 成人在线中文字幕| 国产成a人亚洲精v品无码| 亚洲一区二区三区视频在线播放| 日本黄大片在线观看| 欧美午夜寂寞| 亚洲天堂视频在线观看| 俄罗斯毛片基地| 国产一区91精品张津瑜| 国产精品一区二区三区免费| 综合日韩av| 欧美日韩免费观看一区二区三区| 91aaa精品| 一道本一区二区| 国产成人精品综合| 国产精品综合在线| 图片区小说区国产精品视频| 欧美国产日韩在线播放| 亚洲成人精品| 91精品国产精品| 日韩不卡高清视频| 一区二区三区四区不卡在线| 久久精品国产sm调教网站演员| 亚洲男人都懂第一日本| 中文字幕国产精品久久| 裸体武打性艳史| 91网站最新网址| 亚洲欧洲一区二区| 高清精品xnxxcom| 在线视频中文亚洲| 久久久久久av无码免费网站| 久久久美女毛片| 欧美日韩亚洲国产成人| 丝袜美腿一区二区三区动态图| 中文字幕精品国产| 五月天婷婷丁香| 国产精品久久久久一区二区三区 | 亚洲欧洲中文日韩久久av乱码| 人人妻人人添人人爽欧美一区| 日韩欧美网址| 91黄色8090| 国产精品久久久久久久久久久久久久久久 | 中文字幕av片| 亚洲成在线观看| 8x8x成人免费视频| 久久尤物视频| 国产精品一区二区av| 永久免费观看精品视频| 亚洲精品国产品国语在线 | 精品日本美女福利在线观看| 亚洲一区二区三区观看| 久久av最新网址| 国产精品国产精品| 久久伊人国产| 亚洲欧洲国产精品| 国产第一页在线播放| 亚洲婷婷在线视频| 亚洲欧美另类动漫| 午夜在线播放视频欧美| 国产不卡一区二区在线观看 | 亚洲啪啪综合av一区二区三区| 欧美视频第三页| 亚洲国产美女| 国产成人av一区二区三区| 成人在线啊v| 色偷偷888欧美精品久久久| 日本视频网站在线观看| 五月天一区二区三区| 亚洲av无码成人精品区| 韩日精品视频一区| 亚洲三区在线| 欧美一级本道电影免费专区| 日本aⅴ大伊香蕉精品视频| 五月婷婷伊人网| 亚洲国产成人久久综合一区| 9999热视频| 亚洲美女视频在线观看| 中文字幕一区二区三区四| 久久精品久久99精品久久| 少妇特黄a一区二区三区| 国产va免费精品观看精品视频| 91黑丝高跟在线| 美女100%一区| 亚洲三级免费看| 亚洲av综合一区| 欧美日韩中文国产| 色偷偷男人天堂| 一色桃子久久精品亚洲| 亚洲综合20p| 国产高清久久久| 免费网站在线观看视频| 亚洲精品美女91| 精品视频在线观看| 久久99国产精一区二区三区| 国产成人黄色av| 男人天堂久久| 欧美日本黄视频| 亚洲成人久久精品| 亚洲成成品网站| 97免费在线观看视频| 日韩欧美一区二区在线| 91在线无精精品白丝| 国产精品伦一区| 日韩欧美中文视频| 福利一区二区在线观看| 日韩日韩日韩日韩日韩| 久久亚洲美女| 中文字幕不卡每日更新1区2区| 最新国产精品| 精品午夜一区二区三区| 精品国产乱码| 亚洲a∨日韩av高清在线观看| 欧美成人精品午夜一区二区| 久久人人爽人人| 成人网ww555视频免费看| 久久手机免费视频| 手机看片一区二区三区| 伊人久久五月天| av中文字幕免费| 精品偷拍各种wc美女嘘嘘| 中文字幕乱伦视频| 欧美r级在线观看| 无码任你躁久久久久久久| 91精品免费在线| 天天干天天干天天干天天| 在线成人av网站| 国产乡下妇女做爰毛片| 欧亚洲嫩模精品一区三区| 激情综合网五月天| 一本色道久久综合亚洲精品按摩| 日本一级片免费| 日韩欧美在线免费| 欧美日韩色视频| 色先锋aa成人| 九九热只有精品| 欧美日韩国产片| 天堂а√在线中文在线新版| 日韩亚洲欧美在线观看| 国产熟妇一区二区三区四区| 精品久久久久久最新网址| 中文字字幕在线中文乱码| 日韩福利在线播放| 国产老妇伦国产熟女老妇视频| 亚洲男人的天堂在线播放| 国产特级aaaaaa大片| 国产一区二区成人| 天天操天天干天天舔| 久久91精品国产91久久跳| 成人黄页网站视频| 2024亚洲男人天堂| 亚洲精品视频一二三区| 国产欧美日韩精品丝袜高跟鞋| 六月丁香久久丫| 91一区二区三区| 午夜影院欧美| 欧美专区一二三| 亚洲在线黄色| 黄色一级在线视频| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产在线播放观看| 国产精品亚洲第一区在线暖暖韩国| 日韩av一二三四| 91亚洲精品一区二区乱码| 色婷婷狠狠18禁久久| 一区二区三区美女| www.97视频| 欧美精品在线视频| 中文字幕乱码中文字幕| 夜夜嗨av一区二区三区免费区| 日韩中文字幕免费在线观看| 日韩中文字幕在线观看| 欧美成人毛片| 国产乱肥老妇国产一区二 | 国产精品亚洲综合色区韩国| 337p亚洲精品色噜噜狠狠p| 国产一区二区成人久久免费影院 | 欧美精品在线一区二区| 国产美女www爽爽爽| 国产一区二区三区在线免费观看| 亚洲 美腿 欧美 偷拍| 97福利一区二区| 精品国产一区二区三区成人影院| 97久久天天综合色天天综合色hd| 欧美日韩一区二区三区四区在线观看| 黄黄视频在线观看| 国产传媒日韩欧美成人| 久久久久亚洲av无码网站| 洋洋av久久久久久久一区| 免费视频一二三区| 精品精品欲导航| 天天干视频在线| 日韩美女福利视频| 日韩中文字幕高清在线观看| 一区二区日本| 国产激情视频一区二区在线观看| 亚洲熟女乱综合一区二区| 亚洲成人动漫一区| 免费观看成人毛片| 亚洲天堂av在线免费观看| 视频91a欧美| 99久久精品免费看国产四区| 最新亚洲激情| 福利在线一区二区三区| 最新日韩在线视频| 九九九久久久久| 日韩成人在线视频| 成人全视频在线观看在线播放高清 | 亚洲午夜黄色| 国内自拍在线观看| 国产精品欧美极品| 午夜剧场免费在线观看| 精品国产91久久久久久久妲己| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 日韩精品一区三区| 亚洲视频一区二区| 日日夜夜亚洲| 国产精品美女黄网| 日韩中文字幕一区二区三区| 国产无色aaa| 午夜久久电影网| 自拍偷拍色综合| 国内精品一区二区三区四区| 精品国产一区二区三区av片| 吴梦梦av在线| 91玉足脚交白嫩脚丫在线播放| 国产农村妇女精品一区| 欧美不卡在线视频| 97人人做人人爽香蕉精品| 成人在线免费网站| 日本va欧美va瓶| 东京热av一区| 欧美精品vⅰdeose4hd|