應用服務器的緩存機制

持久層設計中,往往需要考慮幾個不同層次中的數據緩存策略。這些層次的劃分標準針對不同情況有所差異,一般而言,ORM的數據緩存應包含如下幾個層次:


1、事務級緩存(Transaction Layer Cache)
   緩存只能被當前事務訪問。緩存的生命週期依賴於事務的生命週期,當事務結束時,緩存也就結束生命週期。
   在此範圍下,緩存的介質是內存。事務可以是數據庫事務或者應用事務,每個事務都有獨自的緩存,緩存內的數據通常採用相互關聯的對象形式。

2、應用級/進程級緩存(Application/Process Layer Cache)

    緩存被進程內的所有事務共享。這些事務有可能是併發訪問緩存,因此必須對緩存採取必要的事務隔離機制。
    緩存的生命週期依賴於進程的生命週期,進程結束時,緩存也就結束了生命週期。進程範圍的緩存可能會存放大量的數據,所以存放的介質可以是內存或硬盤。緩存內的數據既可以是相互關聯的對象形式也可以是對象的鬆散數據形式。對象的鬆散數據形式有點類似於對象的序列化數據,但是對象分解爲鬆散的算法比對象序列化的算法要求更快。

3、集羣級緩存(Cluster Layer Cache)

   在集羣環境中,緩存被一個機器或者多個機器的進程共享。緩存中的數據被複制到集羣環境中的每個進程節點,進程間通過遠程通信來保證緩存中的數據的一致性,緩存中的數據通常採用對象的鬆散數據形式。對大多數應用來說,應該慎重地考慮是否需要使用集羣範圍的緩存,因爲訪問的速度不一定會比直接訪問數據庫數據的速度快多少。

    持久層提供以上多種層次的緩存。如果在事務級緩存中沒有查到相應的數據,還可以到進程級或集羣級緩存內查詢,如果還是沒有查到,那麼只有到數據庫中查詢。事務級緩存是持久化層的第一級緩存,通常它是必需的;進程級或集羣級緩存是持久化層的第二級緩存,通常是可選的。
爲了在網絡中提高訪問速度,在應用服務器中提供緩存機制是一個不錯的選擇。
但是如果在外網中,比如電信,網通這樣的外網之間互訪,就會。。(制&度問題)。這種情況的解決方案就是建立鏡像服務器。
同時還可以建立一級鏡像服務器和二級鏡像服務器。其實就是原鏡像服務器的一個內容拷貝,但是和原服務器之間的同步有一個時間差。
鏡像服務器概念還比較弱,學習之後再補充。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章