【发布时间】:2020-05-20 22:37:54
【问题描述】:
我知道 CAP 定理:
一致性(所有节点同时看到相同的数据)
可用性(保证每个请求都会收到关于它是成功还是失败的响应)
分区容错性(尽管任意消息丢失或系统部分故障,系统仍继续运行)
Cassandra 通常被归类为 AP 系统,我听说是的,它可以转向 CA,但我没有找到文档。 如何使用 CA Cassandra?
谢谢。
【问题讨论】:
我知道 CAP 定理:
一致性(所有节点同时看到相同的数据)
可用性(保证每个请求都会收到关于它是成功还是失败的响应)
分区容错性(尽管任意消息丢失或系统部分故障,系统仍继续运行)
Cassandra 通常被归类为 AP 系统,我听说是的,它可以转向 CA,但我没有找到文档。 如何使用 CA Cassandra?
谢谢。
【问题讨论】:
一般来说,CAP 中的“P”是 NoSQL 技术旨在解决的问题。这通常是通过在多个实例中水平分布数据来实现的。
因此,如果您希望 Cassandra 在“CA”CAP 配置中运行,那么将其作为单节点集群运行将是一个很好的第一步。
听说可以转CA,但是没找到文档。
重读本文后,您可能已将“CA”与“CP”混淆了。
可以将 Cassandra 作为“CP”数据库运行,或者至少在这方面将其调整为 表现。解决此问题的方法是在应用程序端设置查询以使用更高级别的一致性,例如 [LOCAL_]QUORUM、EACH_QUORUM 甚至 ALL。通过增加每个键空间定义中的复制因子 (RF),可以将一致性调得更高。将 RF 设置为节点数并以 ALL 一致性进行查询将与可以调整为一致的一样高。
但是,我不得不提一下这一切是多么可怕的想法。 Cassandra 被设计为“AP”。与这种内在设计作斗争是徒劳的。我一直说,当你试图超越 Cassandra Cassandra 时,没有人会赢。
如果您利用工程时间以与其设计相反的方式创建数据存储功能,那么不同的数据存储(您不必反对)可能会更好选择。
【讨论】: