成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

緩存,你真的用對了么?

開發 開發工具
有架構師說“緩存是萬金油,哪里有問題,加個緩存,就能優化”,緩存的濫用,可能會導致一些錯誤用法。緩存,你真的用對了么?

緩存,是互聯網分層架構中,非常重要的一個部分,通常用它來降低數據庫壓力,提升系統整體性能,縮短訪問時間。

有架構師說“緩存是萬金油,哪里有問題,加個緩存,就能優化”,緩存的濫用,可能會導致一些錯誤用法。

[[234668]]

緩存,你真的用對了么?

誤用一:把緩存作為服務與服務之間傳遞數據的媒介

緩存

如上圖:

  • 服務1和服務2約定好key和value,通過緩存傳遞數據
  • 服務1將數據寫入緩存,服務2從緩存讀取數據,達到兩個服務通信的目的

該方案存在的問題是:

  • 數據管道,數據通知場景,MQ更加適合
  • 多個服務關聯同一個緩存實例,會導致服務耦合

誤用二:使用緩存未考慮雪崩

常規的緩存玩法,如上圖:

  • 服務先讀緩存,緩存***則返回
  • 緩存不***,再讀數據庫

什么時候會產生雪崩?

答:如果緩存掛掉,所有的請求會壓到數據庫,如果未提前做容量預估,可能會把數據庫壓垮(在緩存恢復之前,數據庫可能一直都起不來),導致系統整體不可服務。

如何應對潛在的雪崩?

答:提前做容量預估,如果緩存掛掉,數據庫仍能扛住,才能執行上述方案。

否則,就要進一步設計。

常見方案一:高可用緩存

如上圖:使用高可用緩存集群,一個緩存實例掛掉后,能夠自動做故障轉移。

常見方案二:緩存水平切分

緩存

如上圖:使用緩存水平切分,一個緩存實例掛掉后,不至于所有的流量都壓到數據庫上。

誤用三:調用方緩存數據

如上圖:

  • 服務提供方緩存,向調用方屏蔽數據獲取的復雜性(這個沒問題)
  • 服務調用方,也緩存一份數據,先讀自己的緩存,再決定是否調用服務(這個有問題)

該方案存在的問題是:

  • 調用方需要關注數據獲取的復雜性
  • 更嚴重的,服務修改db里的數據,淘汰了服務cache之后,難以通知調用方淘汰其cache里的數據,從而導致數據不一致
  • 有人說,服務可以通過MQ通知調用方淘汰數據,額,難道下游的服務要依賴上游的調用方,分層架構設計不是這么玩的

誤用四:多服務共用緩存實例

如上圖:

  • 服務A和服務B共用一個緩存實例(不是通過這個緩存實例交互數據)

該方案存在的問題是:

  • 可能導致key沖突,彼此沖掉對方的數據
  • 畫外音:可能需要服務A和服務B提前約定好了key,以確保不沖突,常見的約定方式是使用namespace:key的方式來做key。
  • 不同服務對應的數據量,吞吐量不一樣,共用一個實例容易導致一個服務把另一個服務的熱數據擠出去
  • 共用一個實例,會導致服務之間的耦合,與微服務架構的“數據庫,緩存私有”的設計原則是相悖的

建議的玩法是:

如上圖:各個服務私有化自己的數據存儲,對上游屏蔽底層的復雜性。

總結

緩存使用小技巧:

  • 服務與服務之間不要通過緩存傳遞數據
  • 如果緩存掛掉,可能導致雪崩,此時要做高可用緩存,或者水平切分
  • 調用方不宜再單獨使用緩存存儲服務底層的數據,容易出現數據不一致,以及反向依賴
  • 不同服務,緩存實例要做垂直拆分

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2022-05-09 07:27:50

ThreadLocaJava

2019-08-27 08:24:17

簡歷技能工作

2020-09-18 06:39:18

hashMap循環數據

2024-12-17 15:00:00

字符串Java

2021-12-25 22:28:27

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

2024-09-18 10:08:37

2022-01-12 18:35:54

MongoDB數據查詢

2022-07-26 00:00:04

Maven作用域Java

2021-10-26 00:38:10

Redis分布式

2019-12-18 15:11:42

數組集合數據

2018-06-29 08:36:50

2022-03-14 00:05:23

MySQL模式數據庫

2021-10-25 09:50:57

Redis分布式技術

2025-06-25 02:00:00

2021-01-20 16:26:17

Go編程語言

2018-10-07 06:30:40

代碼設計模式面向對象原則

2024-01-08 08:27:11

注解Bean代理

2017-10-10 15:30:20

JavaScript

2019-12-10 10:13:58

HTTPNginxRedirect
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久网站 | 日韩高清一区二区 | 2020天天操 | 久久久国产一区二区三区 | 在线观看国产 | 国产福利91精品一区二区三区 | 永久看片| 国产免费av在线 | 天天射网站 | 一道本不卡 | 超碰在线人人干 | 国外成人在线视频 | 综合精品久久久 | 国产精品激情小视频 | 久久精品国产一区二区三区不卡 | 久久国产成人精品国产成人亚洲 | 中文字幕 在线观看 | 天天操伊人| 超碰婷婷 | 中文一区 | 久久九七 | 午夜a级理论片915影院 | 中文字幕综合在线 | 美女视频黄的 | 日韩欧美手机在线 | 91精品国产综合久久婷婷香蕉 | 成人日韩av| 国产成人高清视频 | 精品国产乱码久久久久久牛牛 | 国产亚洲久 | 国产精品久久久久久久久久久免费看 | 国产精品一区二区欧美黑人喷潮水 | 国精产品一区一区三区免费完 | 婷婷激情综合 | 免费一级毛片 | 蜜桃色网 | 欧美一区二区三区在线观看 | 91一区二区 | 青草青草久热精品视频在线观看 | 久久久入口| 精品在线 |