www是網際網路上最受歡迎的應用之一,其快速增長造成網路擁塞和伺服器超載,導致客戶訪問延遲增大,www服務質量日益顯現出來。快取技術被認為是減輕伺服器負載、降低網路擁塞、增強www可擴充套件性的有效途徑之一,其基本思想是利用客戶訪問的時間區域性性(temproral locality)原理,將客戶訪問過的內容在cache中存放乙個副本,當該內容下次被訪問時,不必連線到駐留**,而是由cache中保留的副本提供。
web內容可以快取在客戶端、**伺服器以及伺服器端。研究表明,快取技術可以顯著地提高www效能,它可以帶來以下好處:
(1)減少網路流量,從而減輕擁塞。
(2)降低客戶訪問延遲,其主要原因有:①快取在**伺服器中的內容,客戶可以直接從**獲取而不是從遠端伺服器獲取,從而減小了傳輸延遲②沒有被快取的內容由於網路擁塞及伺服器負載的減輕而可以較快地被客戶獲取。
(3)由於客戶的部分請求內容可以從**處獲取,從而減輕了遠端伺服器負載。
(4)如果由於遠端伺服器故障或者網路故障造成遠端伺服器無法響應客戶的請求,客戶可以從**中獲取快取的內容副本,使得www服務的魯棒性得到了加強。
web快取系統也會帶來以下問題:
(1)客戶通過**獲取的可能是過時的內容。
(2)如果發生快取失效,客戶的訪問延遲由於額外的**處理開銷而增加。因此在設計web快取系統時,應力求做到cache命中率最大化和失效代價最小化。
(3)**可能成為瓶頸。因此應為乙個**設定乙個服務客戶數量上限及乙個服務效率下限,使得乙個**系統的效率至少同客戶直接和遠端伺服器相連的效率一樣
目前快取有本地快取,集群快取, 分布式快取;
1.本地快取:小應用使用,不需要多個tomcat的情況;資料儲存在應用**所在記憶體空間.優點是可以提供快速的資料訪問;缺點是資料無法分布式共享,無容錯處理.典型的ecache
2.集群快取:多台tomcat之間的快取,需要保持快取之間的同步,要看下快取之間是怎麼同步的。目前我司採取的方案,是更新了乙個快取,然後發起http 同步快取。這樣
缺點1:如果有很多臺tomcat的快取,需要全部同步,很難保證 所有的tomcat的快取同步。
缺點2:如果有的api操作裡面,有快取操作,需要發起http請求,這是同步的,會阻塞api響應時間,集群越多,響應越慢!
放置:需要放置哪些很少變化的資料,如果變化資料很頻繁的,最好是放到分布式快取中去維護。
3.分布式快取:所有tomcat伺服器都來訪問的記憶體系統。能夠支援統一訪問。
缺點:資料過多的話,響應慢。所以要仔細看下返回的資料是否過大。不過1000條以內沒什麼影響。
資料在固定數目的集群節點間分布儲存.優點是快取容量可擴充套件(靜態擴充套件);缺點是擴充套件過程中需要大量配置,無容錯機制.典型的,如memcached;
分布式快取的典型應用場景可分為以下幾類:
1) 頁面快取.用來快取web 頁面的內容片段,包括html、css 和等,多應用於社交**等;
2) 應用物件快取.快取系統作為orm 框架的二級快取對外提供服務,目的是減輕資料庫的負載壓力,加速應用訪問;
3) 狀態快取.快取包括session 會話狀態及應用橫向擴充套件時的狀態資料等,這類資料一般是難以恢復的,對可用性要求較高,多應用於高可用集群;
4) 並行處理.通常涉及大量中間計算結果需要共享;
5) 事件處理.分布式快取提供了針對事件流的連續查詢(continuous query)處理技術,滿足實時性需求;
6) 極限事務處理.分布式快取為事務型應用提供高吞吐率、低延時的解決方案,支援高併發事務請求處理,多應用於鐵路、金融服務和電信等領域.
快取那些事之快取簡介
快取技術被認為是減輕伺服器負載 降低網路擁塞 增強www可擴充套件性的有效途徑之一,其基本思想是利用客戶訪問的時間區域性性原理,將客戶訪問過的內容在cache中存放乙個副本,當該內容下次被訪問時,不必連線到駐留 而是由cache中保留的副本提供。web內容可以快取在客戶端 伺服器以及伺服器端。研究表...
快取那些事
從看大公司的前端效能優化到自己專案實戰,快取是一件極其有意思的事情之一 還有正則,函式,再扯就跑題了。在此我們先把邏輯流程走一遍。etag 這是啥 請求head中的乙個屬性 幹啥的 幫助伺服器控制web端的快取驗證 怎麼幹的 當瀏覽器請求伺服器的某項資源 a 時,伺服器根據a算出乙個值hash 有人...
關於快取的那些事
cookie的缺陷是非常明顯的 1.資料大小 作為儲存容器,cookie的大小限制在4kb左右這是非常坑爹的,尤其對於現在複雜的業務邏輯需求,4kb的容量除了儲存一些配置欄位還簡單單值資訊,對於絕大部分開發者來說真的不知指望什麼了。2.安全性問題 由於在http請求中的cookie是明文傳遞的 ht...