Nosql 使用cassandra并保持数据一致性

Nosql 使用cassandra并保持数据一致性,nosql,cassandra,consistency,eventual-consistency,Nosql,Cassandra,Consistency,Eventual Consistency,众所周知,卡桑德拉的复制因子水平是一致的。我们只是想利用它来保持数据的一致性。因为它应该保存价格信息 那么哪种策略更好呢 写全部 在响应客户端之前,确保已将写操作写入所有N个副本。任何无响应的副本都会导致操作失败 通读 将查询所有副本,并在所有副本回复后返回带有最新时间戳的记录。任何无响应的副本都将使操作失败 看来写所有东西都是最安全的。 但不确定“通读”是否更好?对它的利弊有什么看法?您认为nosql还有其他更好的选择吗?“更好”取决于您试图实现的目标。在一致性级别使用写或读意味着,即使一个节

众所周知,卡桑德拉的复制因子水平是一致的。我们只是想利用它来保持数据的一致性。因为它应该保存价格信息

那么哪种策略更好呢

写全部 在响应客户端之前,确保已将写操作写入所有N个副本。任何无响应的副本都会导致操作失败

通读 将查询所有副本,并在所有副本回复后返回带有最新时间戳的记录。任何无响应的副本都将使操作失败

看来写所有东西都是最安全的。 但不确定“通读”是否更好?对它的利弊有什么看法?您认为nosql还有其他更好的选择吗?

“更好”取决于您试图实现的目标。在一致性级别使用写或读意味着,即使一个节点没有响应,集群也无法进行写(或读)

通常,在一致性级别QUORUM上写入和读取是一种有效的平衡方法,因为它提供了完全一致性(您永远不会读取过期的值),但也可以容忍少数节点的故障


但“最佳”方法取决于您的应用程序以及您实际需要的一致性。特别是,如果您能够容忍较低的一致性,您可以获得更好的读写性能(以及更好的可用性)。

如果您认为在本用例中,其他一些nosql db比cassandra更好,我需要添加一些注释。告诉我原因。实际上我想HBase在保持一致性方面可以做得更好。只是不知道它的细节。是的,我可以这样理解,它将平衡写作和阅读的负荷,也确保了一致性。补充问题,每项法定人数何时有用?我只是好奇而已,比如说。每个_QUORUM将确保在响应客户端之前,写入已写入群集中每个数据中心的副本仲裁。它设计用于具有机架感知副本放置策略(如NetworkTopologyStrategy)的集群中。