Cache notes

根據緩存和應用的耦合程度將其劃分爲Local Cache和Remote Cache。

Local Cache是指包含在應用之中的緩存組件,如Ehcache, Oscache.

Remote Cache指和應用解耦,在應用之外的緩存組件,如Memcached

 

Local Cache最大的優點是應用和Cache在同一進程內部,請求緩存非常快速,完全不需要網絡開銷,所以單應用,不需要集羣,或者集羣時Cache node不需要互相通知的情況下使用比較合適。

缺點:多個應用程序無法直接共享緩存,應用集羣的情況下這個問題就更加明顯(好像是廢話= =)

springside wiki 寫道
Cache的類別:
本地緩存:從最簡單的Map到Ehcache單機版都屬於一類。
分佈式緩存:分佈在不同JVM的Cache可以互相同步與備份,如JBossCache和Oracle那個天價的產品。
集中式緩存:最著名的代表是Memcache,Terracotta其實也屬於透明的集中式架構。

建議Ehcache單機使用,因爲Terracotta收購後在分佈式緩存中必然側重於TC,JGroup等廣播通知方式已停止發展。
注意:顯示聲明的Cache項並不會默認從DefaultCache節點繼承屬性,必須重新聲明或使用Ehcache內部的默認值。

 

Memcached是一種集中式Cache,支持分佈式橫向擴展。

集中式架構:

1.節點均衡的網狀(JBoss Tree Cache),利用JGroup的多廣播通信機制來同步數據。

2.Maste-Slaves模式(分佈式文件系統),由Master來管理slave,如何選擇slave,如何遷移數據,都是由Master來完成,但是Master本身也存在單點問題。

應用點:

小對象的緩存(用戶的token,權限信息,資源信息),小的靜態資源緩存,SQL結果的緩存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章