当前位置: 首页 > 知识库问答 >
问题:

Mongo在异步模式下提供一致性吗?

关项明
2023-03-14

正如Mongopromise的一致性,这意味着每次读取都会收到最近的写入或错误

这是否意味着当mongo说提交完成时,数据也以同步的方式写入所有从机,因为只有它才能保证一致性?

Mongo还提供异步复制,这意味着会有复制滞后B/W主从。因此,不能保证一致性。那么Mongo是如何提供一致性的呢?

共有1个答案

晋弘义
2023-03-14

但是,当可选地启用从次要数据读取时,MongoDB最终会变得一致,因为它有可能读取过时的结果。

默认情况下,是的。您可以使用写关注点来调整这种行为。例如,如果您的副本集有三个节点,并且您使用w=3执行写操作,那么您的写操作是一致的,您可以立即将它们读回来。不要陈旧的读物。

但是,客户端将在整个写过程中被阻塞(它将等待更改传播)。所以你必须决定你更喜欢什么:一致的写还是快速的客户端。好消息是:您可以根据每个请求来决定。不需要重新配置/重新启动数据库(就像在其他一些数据库中一样)

 类似资料:
  • 正在寻找有关mongo db异步提交的适当文档。我们有一个spring boot应用程序,我们试图为我们的域对象生成审计,我们希望将javers生成的审计异步提交到mongo db中,而我们的主要基于SQL的事务是此mongodb调用的fr。任何关于这方面的建议都会非常有用。

  • 我试图用django管道编译静态,但无法在开发模式下为静态服务。由于我不是Django开发人员,我可能对Django为静态文件本身提供服务的方式有所误解。这是我的项目结构: 项目(项目本身) css 应用程序。斯蒂尔 媒体 当我使用共享静态时,我已经指定了指令来允许Django dev server和命令查找共享静态: 这是我的: 在我的模板中,我指定了CSS组: 因此,生成这样的HTML: 但返

  • 在很短的时间内被调用多次,因为Kotlin的像一样调用了这个函数。 现在,我有时会得到一个错误。通过阅读这个线程,我了解到这是一个线程问题,我读过很多类似于这个的建议,都说:更新适配器的数据集的线程和向RecyclerView分派更新的线程必须是相同的。 正如你所看到的,我已经尊重这一点,我做了: 既然主线程,而且只有它,做这两个操作,我怎么可能得到这个错误?

  • 我正在使用JAX-WS开发WebService(我在jaxws maven插件上使用wsimport目标)。我编写了一个导入XSD模式的WSDL。 此外,我还生成了web服务类,并创建了endpoint和all。到目前为止,一切都很顺利。当我在Tomcat7上运行服务时,一切都正常。我可以从以下位置访问浏览器中的wsdl: 但是我无法访问xsd模式。问题是在这个wsdl: 当然,在生成类的过程中,

  • 描述 这个模块提供一致性hash作为负载均衡算法。 该模块通过使用客户端信息(如:$ip, $uri, $args等变量)作为参数,使用一致性hash算法将客户端映射到后端机器 如果后端机器宕机,这请求会被迁移到其他机器 server _id_ 字段,如果配置id字段,则使用id字段作为server标识,否则使用server ip和端口作为server标识, 使用id字段可以手动设置server的

  • 我有大块的对象数组。我想得到一些东西然后把它分配给一个新的财产,我这样做了 问题是,仍然是一个,为什么?