【问题标题】:MongoDB: What's the use of a secondary in a sharding scheme?MongoDB:分片方案中辅助节点的用途是什么?
【发布时间】:2017-03-31 07:56:27
【问题描述】:

我已阅读 Google Cloud Platform 的 article 关于部署 MongoDB。使用分片方案,很明显应用程序永远不会从辅助 MongoDB 服务器读取:

因为生产应用从不从辅助服务器读取数据,所以应用永远不需要处理过时读取和最终一致性的复杂性。

我的问题是:

  1. 辅助服务器是否仅用于容错,即在主服务器出现故障时作为备份?或者在同一个分片区域中拥有辅助节点是否有性能优势?

  2. 如果是这样,请考虑以下几点:

Compute Engine 磁盘具有内置冗余,可防止数据出现故障并通过维护事件确保数据可用性

为什么在像 Google Cloud 这样的容错平台上根本需要辅助服务器?

谢谢!

【问题讨论】:

    标签: mongodb google-compute-engine sharding


    【解决方案1】:

    回答这两个问题:

    副本集的其他好处

    副本集还允许您perform rolling updates to MongoDB,因此对于支持更新很有用。

    还可以允许某些应用程序(例如报告应用程序)从辅助节点读取数据,从而减少主节点的一些负载。 MongoDB 网站上提供了一些详细信息和用例 - https://docs.mongodb.com/v3.2/core/read-preference/

    辅助服务器的要求

    Google 文章指出:

    除非发生灾难性中断,否则 MongoDB 主服务器应该 永远在这个地区

    通过在副本集中拥有多个成员,您可以保护自己免受此类灾难性中断的影响。如果您需要非常高的可用性,那么您需要这种级别的保护。

    MongoDB 自己的数据库即服务 (Atlas) 将副本集成员部署到不同的 Amazon Web Service 可用区,以防止此类灾难性中断。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      • 1970-01-01
      相关资源
      最近更新 更多