在阅读了一些关于谷歌的文章后,我了解到像Mongo这样的NoSql数据库是为CP(在CAP中)而设计的,而Cassandra是为AP(在CAP中)而设计的。
我的问题是:
是否可以配置Mongo以提供AP而不是CP,或者它的设计非常严格只能提供CP?同样的情况也适用于Cassandra吗?
在阅读了一些关于谷歌的文章后,我了解到像Mongo这样的NoSql数据库是为CP(在CAP中)而设计的,而Cassandra是为AP(在CAP中)而设计的。
我的问题是:
是否可以配置Mongo以提供AP而不是CP,或者它的设计非常严格只能提供CP?同样的情况也适用于Cassandra吗?
Cassandra使用可调整一致性,您可以通过使用不同的一致性级别在写入和/或读取数据时进行控制。例如,如果您在写入和读取时都使用QUORUM,则可以获得强一致性,尽管可用性可能会受到影响。
附注:我无法对Mongo进行评论...
MongoDB永远不能成为AP系统,因为它是基于领导者的系统。 可能有两种情况:
对于Cassandra而言,正如Alex所说,我们可以通过牺牲可用性来提高Cassandra的一致性。
阅读本文,了解详细解释。