1.緩存意義
可擴充性,可靠性和高性能是現代J2EE應用程式的必備要求。不管用戶端類型如何,請求處理通常都涉及到對性能有負面影響的操作,比如從不同的資料源收集資訊和執行複雜的計算。 緩存是提高企業應用程式性能的最重要的實踐之一。 每個應用程式都有自己的緩存要求,必須不斷調整以確定不會發生性能下降。尤其是分布式緩存系統,緩存服務的目标。大量遠端調用速度特别慢,會占用寶貴的網絡帶寬,引發性能問題。
2.緩存的基本準則
通過添加緩存來減少遠端調用
緩存隻讀資料,如地區資訊
給定的一組參數值總是傳回相同的資訊,如果可以容忍陳舊資料,則可緩存動态資料。
要緩存的資料量應該是可控的,否則最終會使用太多的記憶體
跨叢集緩存動态資料并同步每個節點中的資料是困難的
應該避免緩存實時資料(如股市行情)和敏感資料
緩存可以引入與安全和審計有關的問題??
2.聲明式緩存優點
聲明式緩存不涉及任何程式設計,是以它是一種更容易,更快速的應用和調整緩存服務的方式。
高速緩存服務的配置可以完全在Spring IoC容器中完成。
聲明式緩存特點:
提供一個統一,更簡單,更易于使用的API
提供聲明式緩存重新整理以防止陳舊資料的存儲
支援不同的聲明式配置政策
可以很容易地擴充來支援額外的緩存提供程式
反之 程式設計式緩存
代碼難以了解,核心功能難以看清
代碼難以維護。對緩存提供者的API被嵌入并遍布在應用程式中
代碼很難測試
代碼很難重用
是以程式設計式風格帶來的優勢:
更清晰地分離責任
更高的子產品化
設計決定的晚期限制,開發人員可以推遲做出有關緩存實作和調優的決策。
分布式緩存流程
緩存啟動并運作後,您将查找需要将緩存對象存儲在檔案系統中的情況,或者在群集中的節點中緩存緩存中的更改。緩存提供者能夠借助Java序列化來執行這些功能,這意味着要存儲在緩存中的對象應該實作接口java.io.Serializable。
本文轉自 randy_shandong 51CTO部落格,原文連結:http://blog.51cto.com/dba10g/1979106,如需轉載請自行聯系原作者