from quora
Cassandra是一个非常依赖用例的数据库。在大多数情况下,一个简单的MySQL或PostgreSQL实例即可完成工作。当您发现自己需要Cassandra提供的特定属性时,使用它可能很有意义。
使用Cassandra有许多不同的利弊,其中许多取决于您希望如何使用它。我认为,在决定是否使用Cassandra时,人们倾向于寻找一些东西。
优点
写入速度:卡桑德拉(Cassandra)的“成名主张”之一是它可以处理的令人难以置信的写入量。通过首先写入内存中的数据结构,然后写入仅追加日志,它能够处理如此大量的写入。然后,这些数据结构在以后的时间被“整理”到一个更永久且经过读取优化的文件中。发生故障时,日志仅用于恢复内存中的数据。
多DC复制:开箱即用,Cassandra带有多数据中心复制。此复制会将信息复制到Cassandra进程的任意数量的实例中。此外,您可以创建多个“热”数据中心,这些中心也可以获取数据的副本。这些可用于地理性能或灾难恢复,或同时用于两者。多数据中心设置就像在配置文件中更改一行并更新架构一样简单。多DC复制是人们选择使用Cassandra的主要原因之一。
可调一致性:关于复制数据,您必须能够确定一个或多个节点发生故障时发生的情况。Cassandra允许您逐个查询地决定如何处理潜在问题。如果您始终拥有一个数据集,而该数据集必须始终具有最新的最新信息,那么您可以选择以仲裁级别读取和写入数据。如果您有一个数据集,即使只有1个节点处于活动状态,也要不惜一切代价进行写入,并且不要求具有最新信息,则可以在“ ANY”级别进行写入。有许多不同的方式来读取/写入您的信息。Cassandra允许您选择最适合您的用例和价值的一种。
基于JVM:Apache Cassandra用Java编写