tft每日頭條

 > 圖文

 > 并發緩存架構有哪些

并發緩存架構有哪些

圖文 更新时间:2024-08-18 21:06:16

緩存是指可以進行高速數據交換的存儲器,它先于内存與CPU交換數據,因此速率很快。那麼緩存的運行邏輯是什麼,以及緩存有哪些方案,将是本文的介紹重點。

作者:金鵬

單位:中國移動智慧家庭運營中心

緩存(Cache)是将目标數據存儲到一個具備高度可訪問性的高速運行層的技術。它旨在快速讀取使用率較高的、不經常更新的數據,避免在存取之前的請求重複訪問源數據層,産生額外的I/O資源消耗,繼而提升業務的并發度。為了提升數據訪問的運行速率,緩存數據也要權衡資源容量、數據刷新頻率設置過期時間或設置合理的緩存淘汰策略。主流的緩存方案有CDN緩存、浏覽器緩存、本地緩存、外部緩存等。

Part 01

CDN緩存

CDN指的是内容分發網絡,将資源緩存在CDN節點上,依靠部署在各地的邊緣服務器,通過中心平台的負載均衡、内容分發、調度等功能模塊,使用戶就近去CDN緩存節點上獲取内容,降低網絡延遲,提高訪問速度。運用到此項緩存技術的業務場景有:前端項目中的HTML、CSS、JS等靜态文件、物聯網中下載固件包、異地多活架構中的資源請求等等。将這些文件部署或緩存在CDN節點上,提升資源訪問速度的同時又保證資源訪問的穩定性。

并發緩存架構有哪些(承載高并發的緩存技術究竟是什麼)1

Part 02

浏覽器緩存

浏覽器緩存是指浏覽器與後端服務器通過HTTP協議下的請求-響應模式來通信時,第一次向服務器發送請求并拿到結果後,會根據響應報文中的緩存規則來實現緩存。比如HTTP/1.1協議下會根據Cache-Control實現強制緩存規則;會在強制緩存失效下根據請求中的緩存标識決定緩存規則。浏覽器會話持也是一種緩存實現,目前主流的技術方案有Cookie機制、Session機制、Token機制等。

并發緩存架構有哪些(承載高并發的緩存技術究竟是什麼)2

Part 03

本地緩存

本地緩存是指将響應數據緩存在服務器的應用進程内存空間裡,減少查詢持久化層的I/O消耗。優點是數據不需要跨網絡傳輸,讀取性能更好,支持的QPS更高;缺點是會占用應用進程的内存空間,故不能進行大數據量的數據存儲,而且當所在的應用進程重啟時,本地緩存的數據會丢失。在Andlink雲平台項目中落地的本地緩存解決方案Caffeine,它的依賴包如下:

<dependency> <groupId>com.github.ben-manes.caffeine</groupId> <artifactId>caffeine</artifactId> <version>${caffeine.version}</version> </dependency>

Part 04

外部緩存或分布式緩存

與本地緩存相對應的就是外部緩存或分布式緩存,它獨立于應用進程部署,并可以設計成集群模式來保證數據讀寫分離、高性能、高可用。Andlink雲平台項目中落地的分布式緩存是基于Spring Boot Cache框架整合Redis集群的方案,該方案可以很好的解決數據丢失、業務并發能力、故障恢複和動态存儲擴容等常見業務痛點。結合業務的需求Redis提供了比較全的應對方案,比如單機模式、主從模式、集群模式或哨兵模式,其中哨兵模式可以實現健康檢測和自動恢複,是保障高并發業務穩定運作的首選模式。方案的依賴包如下:

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>${redis.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <version>${cache.version}</version> </dependency>

當然,主流的緩存技術方案有很多,但總的方向是為了減少底層性能開銷、提高業務的高并發能力。目前Andlink雲平台支撐着億級的用戶量和千萬級的設備請求等,緩存技術在其中扮演着舉足輕重的角色。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved