自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

經理讓我復盤上次Redis緩存雪崩事故

存儲 存儲軟件 Redis
公司最近安排了一波商品搶購活動,由于后臺小哥操作失誤最終導致活動效果差,被用戶和代理商投訴了。經理讓我?guī)聜円黄饛捅P這次線上事故。

 [[351279]]

本文轉載自微信公眾號「愛笑的架構師」,作者雷架 。轉載本文請聯(lián)系愛笑的架構師公眾號。   

事故背景

公司最近安排了一波商品搶購活動,由于后臺小哥操作失誤最終導致活動效果差,被用戶和代理商投訴了。經理讓我?guī)聜円黄饛捅P這次線上事故。

什么原因造成的?

搶購活動計劃是零點準時開始,

22:00 運營人員通過后臺將商品上線

23:00后臺小哥已經將商品導入緩存中,提前預熱

搶購開始的瞬間流量非常大,按計劃是通過Redis承擔大部分用戶查詢請求,避免請求全部落在數(shù)據(jù)庫上。

緩存命中

如上圖預期大部分請求會命中緩存,但是由于后臺小哥預熱緩存的時候將所有商品的緩存時間都設置為2小時過期,所有的商品在同一個時間點全部失效,瞬間所有的請求都落在數(shù)據(jù)庫上,導致數(shù)據(jù)庫扛不住壓力崩潰,用戶所有的請求都超時報錯。

實際上所有的請求都直接落到數(shù)據(jù)庫,如下圖:

緩存雪崩

什么時候發(fā)現(xiàn)的?

凌晨01:02 SRE 收到系統(tǒng)告警,登錄運維管理系統(tǒng)發(fā)現(xiàn)數(shù)據(jù)庫節(jié)點 CPU和內存飆升超過閾值,迅速聯(lián)系后臺開發(fā)人員定位排查。

為什么沒有早點發(fā)現(xiàn)?

由于緩存設置過期時間是2小時,凌晨1點前緩存可以命中大部分請求,數(shù)據(jù)庫服務處于正常狀態(tài)。

發(fā)現(xiàn)時采取了什么措施?

后臺小哥通過日志定位排查發(fā)現(xiàn)問題后,進行了一系列操作:

首先通過API Gateway(網關)限制大部分流量進來

接著將宕機的數(shù)據(jù)庫服務重啟

再重新預熱緩存

確認緩存和數(shù)據(jù)庫服務正常后將網關流量正常放開,大約01:30 搶購活動恢復正常。

如何避免下次出現(xiàn)?

這次事故的原因其實就是出現(xiàn)了緩存雪崩,查詢數(shù)據(jù)量巨大,請求直接落到數(shù)據(jù)庫上,引起數(shù)據(jù)庫壓力過大宕機。

在業(yè)界解決緩存雪崩的方法其實比較成熟了,比如有:

  • 均勻過期
  • 加互斥鎖
  • 緩存永不過期

(1)均勻過期

設置不同的過期時間,讓緩存失效的時間點盡量均勻。通??梢詾橛行谠黾与S機值或者統(tǒng)一規(guī)劃有效期。

緩存key過期時間均勻分布

(2)加互斥鎖

跟緩存擊穿解決思路一致,同一時間只讓一個線程構建緩存,其他線程阻塞排隊。

互斥訪問

(3)緩存永不過期

跟緩存擊穿解決思路一致,緩存在物理上永遠不過期,用一個異步的線程更新緩存。

異步更新緩存

復盤總結

通過與同事復盤這次線上事故,大家對于緩存雪崩有了更深刻的理解。為了避免再次出現(xiàn)緩存雪崩事故,大家一起討論了多個解決方案:

(1)均勻過期

(2)加互斥鎖

(3)緩存永不過期

希望技術人能夠敬畏每一行代碼!

 

責任編輯:武曉燕 來源: 愛笑的架構師
相關推薦

2023-03-10 13:33:00

緩存穿透緩存擊穿緩存雪崩

2019-10-12 14:19:05

Redis數(shù)據(jù)庫緩存

2020-03-16 14:57:24

Redis面試雪崩

2021-06-05 09:01:01

Redis緩存雪崩緩存穿透

2022-03-08 00:07:51

緩存雪崩數(shù)據(jù)庫

2023-04-14 07:34:19

2019-04-24 09:25:51

安全事故復聯(lián)

2021-06-02 06:49:18

Redis緩存設計.

2023-12-06 13:38:00

Redis緩存穿透緩存擊穿

2024-04-18 11:43:28

緩存數(shù)據(jù)庫Redis

2024-04-07 00:00:02

Redis雪崩緩存

2019-11-05 14:24:31

緩存雪崩框架

2018-12-13 12:43:07

Redis緩存穿透

2021-01-19 10:39:03

Redis緩存數(shù)據(jù)

2022-08-28 16:31:11

緩存雪崩

2019-03-22 15:15:25

Redis緩存擊穿雪崩效應

2022-05-27 07:57:20

緩存穿透緩存雪崩緩存擊穿

2022-11-18 14:34:28

2023-04-26 07:36:44

緩存雪崩服務器架構

2023-11-10 14:58:03

點贊
收藏

51CTO技術棧公眾號