在应用中使用Java数据网格的5个理由

jopen 11年前

在这篇文章中,我们探讨在应用中使用Java数据网格在内存中缓存Java对象的5大理由。在后面的文章中,我们将探讨一些其他的数据网格功能,超越数据存储,可以彻底改变你的Java体系结构,就像网格计算和事件。
内存是快速的
Java数据网格在内存中存储Java对象。内存存取速度快,延迟低。所以访问磁盘或数据库的数据存储是应用程序中的主要瓶颈,而在存储层的上层使用数据网格作为内存缓存会给你带来性能提升。
扩展你的应用程序共享状态
如果你需要在JVM之间共享状态来扩展您的应用程序,那么使用Java数据网格而不是数据库会增加你的可扩展性。一个典型的共享状态的体系结构如下图所示,应用服务器层在数据网格中存储共享Java对象,并且这些对象可以在你的架构的所有应用程序服务器节点中可用。

在应用中使用Java数据网格的5个理由


从应用服务器层分离数据网格层具有许多优点:
  • 应用程序可以被重新部署并重新启动并不会丢失共享状态
  • 数据网格的JVM和应用程序的JVM可以单独调整
  • 状态可以在多个不同的应用程序中共享
  • 每一层可以根据工作负载分别进行水平扩展

典型共享状态的案例包括:卡片安全代码的PCI兼容存储;网游中的游戏状态;网络会话数据;电子商务中的价格和目录。任何需要低延迟访问的可以存储在共享的数据网格中。

高可用性的内存数据

不仅低延迟而且扩展共享状态。Java数据网格也为你的内存数据提供高可用性。当在数据网格中存储Java对象时,主要对象存储在一个数据网格的JVM中,二级备份对象的副本存储在不同的数据网格JVM节点上,确保一个节点发生故障而不会丢失数据。

在应用中使用Java数据网格的5个理由

数据网格的客户端并不需要知道是在哪里的数据访问,因此对你的应用来说是高可用性是透明的。

扩展内存数据容量

在数据网格中,Java对象没有完全在所有的数据网格JVM中复制,而是作为主要对象和次要对象被存储。这意味着我们增加了更多的JVM堆用来在内存中存储Java对象的更多数据网格的JVM节点。

例如,我们构建一个拥有20个JVM的数据网格,每个有4Gb的可用堆,理论上我们可以存储80Gb的共享数据对象。如果我们假设我们有一个重复的高可用性系统,那将会使存储减半,因此我们能在内存中存储40Gb的Java对象。

使用JPA本地集成

Java数据网格有JPA的本地集成框架,如TopLink和Hibernate,因此数据网格可以作为JPA和数据库之间的第二级缓存。如果数据库访问有关的延迟是一个关键的性能瓶颈,这可以给你的数据库驱动应用程序带来很大的性能提升。

在应用中使用Java数据网格的5个理由

原文: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