版本 1

    Infinispan是一个开源的数据网格平台.它对外发布了一个兼容 JSR-107Cache 接口(该接口继承了java.util.Map) ,你可以通过该接口来存储对象。 Infinispan可以以本地模式运行, 然而它的真正价值在于分布式模式,通过分布式模式可以将缓存集聚起来形成一个巨大的堆内存。分布式模式相对于简单复制要强大的多,因为每个数据项分布在固定数目的节点上,因此使得服务器可以进行错误恢复,又由于存储一个数据项的工作量相对于集群的大小是恒定的,这使得服务器具备了可扩展性。

     

    那么,为什么要选择Infinispan·?Infinispan具有以下特性 :

     

    • 大容量堆内存和高可用性– 假设你有100个刀片服务器, 并且每个节点有2GB的空间用于复制缓存,最终你获得的总数据量的大小为2GB.  每台服务器仅仅是一个拷贝。相反,借助于分布式网格-假设你的每份数据只有一份拷贝- 你将获得100GB的的备份虚拟堆内存,并且在网格中的任何位置都能访问。如果某台服务器崩溃了, 网格只需要简单地创建一份丢失数据的新副本,并将它们放到另一台服务器上。应用也无需再借助于一个巨大的独立数据库来获取数据以追求最大性能的 - 这是80%以上的企业应用中的瓶颈所在! 

     

    • 扩展性– 由于数据是均匀分布的,所以除了考虑到网络上的组通讯,根本就没有必要来限制网格的大小 -  网络上的组通讯只要能够发现一个新的节点即可. 所有的数据获取方式都是通过点对点通信,即节点之间直接进行通信,非常容易控制。 Infinispan的增加或者减少不需要关闭整个服务。 简单的添加删除集群中的机器不会引发任何服务中断。

     

    • 数据分布 –  Infinispan使用一致性哈希算法来决定集群中键值的存储位置。 一致性哈希算法成本低,速度快并且最重要的是不需要额外的元数据或者网络通信就能确定键值的位置。 数据分布的目的是为了在集群环境下保持足够的状态副本以使其具备可持续性和容错性,但是又不会有过多的副本而阻碍 Infinispan的可扩展性。

     

    • 持久化– Infinispan 暴露了一个 CacheStore 接口和几个高性能的实现- 包括JDBC CacheStores,  基于文件系统的 CacheStores以及Amazon S3 CacheStores等等.  CacheStores可以用于“热启动”, 或者用于确保重启整个表格时数据不丢失, 或者设置成当耗尽内存时能够将数据写到硬盘。

     

    • 语言绑定 – (PHP, Python, Ruby, C, 等等.) - Infinispan计划实现一个语言独立的服务器模块。它既将会支持流行的的memcached协议(几乎是任何主流语言实现的)也会支持名称为Hot Rod的Infinispan特定协议. 这就意味着Infinispan不仅仅适用于Java。任何想要使用快速数据网格的主流站点或者应用都将可能选择Infinispan。

     

    • 管理–   当你考虑在数百个服务器上运行这个表格时,管理就不再是额外的,它变成了一种必须。管理多个分布在不同服务器上的Infinispan实例的首选方式是使用 JOPRJOPR 是JBoss' 企业级管理解决方案。由于 JOPR'的代理和自动发现特性,监控Cache Manager 和 Cache实例就变得非常简单。

     

    • 支持表格计算  –  路线图中还包括支持网格中运行可运行程序的能力。 你将能够将复杂处理放到服务器,数据却是本地数据,然后获取数据。map/reduce 模式在需要计算大量数据来获取少量结果的应用中是十分常见的。