http://www.schooner-ht.com/2011/05/23/hazelcast-java%E5%AE%9E%E7%8E%B0%E7%9A%84%E5%86%85%E5%AD%98%E6%95%B0%E6%8D%AE%E7%BD%91%E6%A0%BCin-memory-data-grid%E5%88%86%E6%9E%90-%E4%B8%80/
什么是内存数据网格(以下简称IMDG)?
数据在多个服务器之间共享,提供快速的响应时间,高吞吐量,高扩展性,信息可靠以及持续的稳定性,是内存数据网格的一些基本定义.
有什么用?
当你需要快速访问大型数据集合,并且又无法忍受从磁盘(譬如:数据库)中检索数据时.需要将数据保存在内存中,但是单一服务器内存大小可能不满足数据集合容量.
缺点:内存断电容易丢失,所有服务器断电容易造成数据丢失.
最适用于:Cache.
如何评价一个IMDG的实现?
几种常见的设计拓扑图.
1. 完全复制( Replicated Topology)
数据在集群内的每一个节点都有备份.update的结果会同步到整个集群中
优点:读操作的性能到极致
缺点:数据占用内存太大,随集群数量大小增长.
适用于:小集群对读要求特别高的系统.
2.部分复制(Partitioned Topology)
数据保存一个主数据源以及一到多个备份数据源
优点:高可扩展性,相比Replicated Topology内存使用得到很大的提升
适用于:需要读取大数据集的系统.
3.Near Topology
集群内有的服务器可能需要运行其他的一些应用程序,这些服务器上就不能存放数据.
现有的一些产品实现:
1. GigaSpaces XAP Elastic Caching Edition : http://www.gigaspaces.com/datagrid
2.Oracle Coherence : http://www.oracle.com/technetwork/middleware/coherence/index.html
3.HazleCast (OpenSource) : http://www.hazelcast.com/