我检查了Cassandra和Infinispan的主要功能。它们似乎具有并提供了非常相似的特征和功能:
NoSQL数据存储
坚持
去中心化
支持复制
可扩展性
容错
MapReduce支持
查询
我发现的一个区别是Infinispan不提供可调的一致性(每个节点具有相同的数据)。
在了解Infinispan时,我遇到了Cassandra缓存存储区(http://infinispan.org/docs/cachestores/cassandra/)。它提供数据的持久性。
但是,为什么我还是要直接使用Infinispan而不是Cassandra?
这些解决方案是相辅相成还是在同一水平上更具竞争性?
最佳答案
Infinispan主要用作分布式缓存,例如memcached / hazelcast等。
数据本身是写在内存中的,但是您可以将其持久化到所谓的“缓存存储”中-有许多准备就绪的缓存存储(适用于File / Cassandra / Hbase / Mongo),或者您可以自己实现。
我发现的一个区别是Infinispan不提供
可调一致性(每个节点具有相同的数据)。
可调整的一致性和数据分发是两件事。并非每个节点都具有相同的数据,这取决于您选择如何对数据进行集群。与其他Infinispan一样,Infinispan提供复制(所有节点都存储相同的缓存)和分发(每个节点将负责一系列令牌)。 Cassandra中的可调一致性意味着您可以选择将多少个r / w操作通知给节点,然后再将控件返回给客户端。
由于多种原因,您可能需要直接使用Infinispan而不是Cassandra。例如,如果您的应用程序服务器中有大量内存,并且您想要保留一个比可以在Cassandra节点中存储的更大/不同的缓存。您可能需要的其他功能是插入infinispan-query模块以执行全文搜索,而无需安装Solr / elasticsearch /任何集群或使用is中的事务功能。
恕我直言,这两种产品不能直接进行比较,它们是为不同的用例而生,并提供不同的功能。您可以使用任何一个或两个,这取决于您的应用程序体系结构和需求。
HTH,
卡洛
关于cassandra - Apache Cassandra如何与Infinispan融合?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25401828/