由于Mongo承诺一致性,这意味着Every read receives the most recent write or an error
这意味着当mongo表示提交完成后,数据也以同步方式写入所有从属,因为只有 它可以保证一致性吗?
Mongo还提供异步复制,这意味着将存在复制延迟黑白主服务器和从服务器。因此一致性 无法承诺。那么Mongo如何说它提供了一致性呢?
更新: -
据我所知Where does mongodb stand in the CAP theorem?,Mongo提供了一致性 当system是单主系统时,默认情况下所有读操作都会转到主系统。
但是当选择性地启用从辅助节点读取时,MongoDB最终会变得一致,从而可以读取过时的结果。 因此,Mongo系统之间存在不一致的可能性,并且不提供最新的书面数据。
答案 0 :(得分:0)
但是当选择性地启用从辅助节点读取时,MongoDB最终会变得一致,从而可以读取过时的结果。
默认情况下,是的。您可以使用write concerns调整此行为。例如,如果您的副本集有三个节点并且您使用w=3
进行写入,则您的写入是一致的,您可以立即读取它们。没有陈旧的读物。
但是,客户端将在整个写入期间被阻止(它将等待传播的更改)。所以你必须决定你更喜欢什么:一致的写入或快速的客户端。好消息是:您可以根据要求做出决定。无需重新配置/重新启动数据库(如在其他一些数据库中)