【问题标题】:Cassandra Read consistencyCassandra 读取一致性
【发布时间】:2021-11-24 12:08:14
【问题描述】:
在我的 cassandra 用例中,写入之后是读取,我们观察到来自 cassandra 的过时读取。我知道在 cassandra 中读取一致性很难实现,但是什么是替代品,我们怎么知道读取是陈旧的?只要能知道 read stale 和 writes 还在追赶上,我应该是好的,我承受不起的就是返回stale data。
寻找基于 spring boot 和 spring data cassandra 的解决方案
【问题讨论】:
标签:
cassandra
spring-data-jpa
spring-data-cassandra
eventual-consistency
【解决方案1】:
我怀疑您使用的ONE 或LOCAL_ONE 的一致性较低,这就是您遇到此问题的原因。我认为这种说法是不正确的:
我知道在 cassandra 中很难实现读取一致性...
如果您遵循推荐的准则,即使在 Cassandra 的最终一致架构中也很容易实现一致性。
在几乎所有情况下,您都应该使用LOCAL_QUORUM 进行读取和写入。作为一般建议,读取一致性加上写入一致性必须大于复制因子:
read_CL + write_CL > replication_factor
在非常有限的边缘情况下,ONE 和 LOCAL_ONE 等低一致性是合适的。干杯!