我查看了Cassandra和Infinispan的主要功能.他们似乎拥有并提供了非常相似的特征和功能:
NoSQL数据存储
持久性
分散
支持复制
可扩展性
容错
MapReduce支持
查询
我发现的一个区别是Infinispan不提供可调整性(每个节点都有相同的数据).
在了解Infinispan时,我遇到了Cassandra Cache Store(http://infinispan.org/docs/cachestores/cassandra/).它提供持久的数据.
但那么为什么我仍然想要直接使用Infinispan而不是Cassandra呢?
这些解决方案是否相互补充,或者它们在同一级别上更具竞争力?
Infinispan主要用作分布式缓存,如memcached/hazelcast等.本机数据写在内存中,但您可以将它们保存到所谓的" 缓存存储 "中 - 有许多缓存存储(File/Cassandra/Hbase/Mongo)或者您可以自己实现.
我发现的一个区别是Infinispan不提供可调整性(每个节点都有相同的数据).
可调整的一致性和数据分布是两回事."每个节点都有相同的数据"并不是真的,这取决于您选择如何聚类数据.与其他人一样,Infinispan提供复制(所有节点都存储相同的缓存)和分发(每个节点将负责一系列令牌).Cassandra中的可调一致性意味着您可以在将控件返回给客户端之前选择应该通知有关您的r/w操作的节点数.
出于多种原因,您可能需要直接使用Infinispan而不是Cassandra.例如,如果您的应用程序服务器中有大量内存,并且您希望保留比Cassandra节点中存储的更大/不同的缓存.您可能需要的其他功能是插入infinispan-query模块以执行全文搜索,而无需安装solr/elasticsearch /任何群集或使用is中的事务功能.
恕我直言这两个产品没有直接比较,它们是为不同的用例而生,并提供不同的功能.您可以使用任何一个,一个或两个,取决于您的应用程序架构和需求.
HTH,卡罗