【发布时间】:2019-09-12 06:46:44
【问题描述】:
我是 MongoDB 新手,如果我错了,请纠正我。 在 MongoDB 中,读写操作是在主节点上进行的。在主节点和辅助节点中执行读取操作而仅在主节点中执行写入操作不是更有意义吗?由于主节点最终会更新辅助节点。 如果读写操作都必须从主节点进行,那为什么要维护多个从节点,因为它不会减少对单个数据库的流量,暂时忽略数据安全部分。
【问题讨论】:
标签: mongodb
我是 MongoDB 新手,如果我错了,请纠正我。 在 MongoDB 中,读写操作是在主节点上进行的。在主节点和辅助节点中执行读取操作而仅在主节点中执行写入操作不是更有意义吗?由于主节点最终会更新辅助节点。 如果读写操作都必须从主节点进行,那为什么要维护多个从节点,因为它不会减少对单个数据库的流量,暂时忽略数据安全部分。
【问题讨论】:
标签: mongodb
默认情况下,Primary 处理读取和写入,但您可以将读取定向到 Secondary 节点,并且 mongodb 支持这一点。问题是,您是否可以阅读过时的数据。由于 Secondary 节点通过拖尾 Primary 的 oplog 进行复制,因此它们通常落后于 Primary,您有时可能最终会读取旧数据。如果您的要求不是实时读/写,从辅助节点读取数据完全没问题
维护多个辅助节点的主要目的也是为了高可用性(无停机时间)。例如,如果您有一个 3 节点副本集并说一个节点由于 NW 问题而关闭。在这种状态下,您有两个节点(大多数成员)在线,可以提供读取和写入请求,而不会对您的应用程序产生任何影响
【讨论】: