在應用中使用Java數據網格的5個理由
在這篇文章中,我們探討在應用中使用Java數據網格在內存中緩存Java對象的5大理由。在后面的文章中,我們將探討一些其他的數據網格功能,超越數據存儲,可以徹底改變你的Java體系結構,就像網格計算和事件。
內存是快速的
Java數據網格在內存中存儲Java對象。內存存取速度快,延遲低。所以訪問磁盤或數據庫的數據存儲是應用程序中的主要瓶頸,而在存儲層的上層使用數據網格作為內存緩存會給你帶來性能提升。
擴展你的應用程序共享狀態
如果你需要在JVM之間共享狀態來擴展您的應用程序,那么使用Java數據網格而不是數據庫會增加你的可擴展性。一個典型的共享狀態的體系結構如下圖所示,應用服務器層在數據網格中存儲共享Java對象,并且這些對象可以在你的架構的所有應用程序服務器節點中可用。
從應用服務器層分離數據網格層具有許多優點:
- 應用程序可以被重新部署并重新啟動并不會丟失共享狀態
- 數據網格的JVM和應用程序的JVM可以單獨調整
- 狀態可以在多個不同的應用程序中共享
- 每一層可以根據工作負載分別進行水平擴展 </ul>
典型共享狀態的案例包括:卡片安全代碼的PCI兼容存儲;網游中的游戲狀態;網絡會話數據;電子商務中的價格和目錄。任何需要低延遲訪問的可以存儲在共享的數據網格中。
高可用性的內存數據
不僅低延遲而且擴展共享狀態。Java數據網格也為你的內存數據提供高可用性。當在數據網格中存儲Java對象時,主要對象存儲在一個數據網格的JVM中,二級備份對象的副本存儲在不同的數據網格JVM節點上,確保一個節點發生故障而不會丟失數據。
數據網格的客戶端并不需要知道是在哪里的數據訪問,因此對你的應用來說是高可用性是透明的。
擴展內存數據容量
在數據網格中,Java對象沒有完全在所有的數據網格JVM中復制,而是作為主要對象和次要對象被存儲。這意味著我們增加了更多的JVM堆用來在內存中存儲Java對象的更多數據網格的JVM節點。
例如,我們構建一個擁有20個JVM的數據網格,每個有4Gb的可用堆,理論上我們可以存儲80Gb的共享數據對象。如果我們假設我們有一個重復的高可用性系統,那將會使存儲減半,因此我們能在內存中存儲40Gb的Java對象。
使用JPA本地集成
Java數據網格有JPA的本地集成框架,如TopLink和Hibernate,因此數據網格可以作為JPA和數據庫之間的第二級緩存。如果數據庫訪問有關的延遲是一個關鍵的性能瓶頸,這可以給你的數據庫驅動應用程序帶來很大的性能提升。
原文:http://blog.c2b2.co.uk/2014/01/5-reasons-to-use-java-data-grid-in-your.html
來自:http://blog.sina.com.cn/s/blog_756e07630101hm70.html

