最终一致性环境下写后读记录

Read record after write in eventual consistency environment

写入NoSQL最终一致性环境后如何读回一条记录?例如,我去了一个大型电子商务网站,在我下订单后,我看到了订单确认页面,但是当我点击订单号时,我收到了找不到订单的消息,但由于最终一致性,一分钟后工作正常。我怎样才能在像 Cassandra 这样的 NoSQL 环境中克服这个问题?

我认为在你的例子中,问题不在于真正的最终一致性,而在于系统的分离 - 通常,订单 ID 是由某个子系统生成的,然后通过某个队列推送到数据库中,或类似的东西。

说说Cassandra的最终一致性——如果你想要强一致性,你可以玩一下读写操作的一致性设置。如果你有 R + W > RF,那么你就实现了强一致性。但这可以通过不同的方式实现,具体取决于性能要求——人们经常简单地使用 QUORUM 进行读取和写入——在这种情况下,它将保证你总是得到你写的结果。