在我的cassandra用例中,写入之后是读取,我们观察到来自cassandra的陈旧读取。我知道在cassandra中很难实现读的一致性,但是什么是可选的,我们如何知道读是过时的?只要我知道读是过时的,写还在跟上,我就应该做得很好,我不能承受的是返回过时的数据。
寻找基于spring boot和spring data cassandra的解决方案
发布于 2021-10-04 01:48:09
我怀疑您使用的ONE
或LOCAL_ONE
一致性较低,这就是您遇到此问题的原因。我认为这句话是不正确的:
我知道在cassandra中很难实现读取一致性……
如果遵循推荐的指导原则,即使在Cassandra的最终一致的架构中,一致性也很容易实现。
在几乎所有的情况下,您都应该使用LOCAL_QUORUM
进行读写。作为一般建议,读取一致性加上写入一致性必须大于复制系数:
read_CL + write_CL > replication_factor
在非常有限的边缘情况下,诸如ONE
和LOCAL_ONE
之类的低一致性是合适的。干杯!
https://stackoverflow.com/questions/69429664
复制相似问题