副本集的MongoDB负载均衡器

Gee*_*eek 5 mongodb mongodb-query mongodb-replica-set

在MongoDB的副本集群集中,当我的主要忙于提供另一个请求时,如何确保为用户提供快速响应?

我是否需要使用负载均衡器,或者mongodb本身将查询路由到可用的辅助节点?

谢谢

Vin*_*ren 13

您不需要使用负载均衡器,也不需要将查询路由到辅助节点; 主节点可以自己处理并发查询:

  1. MongoDB使用粒度锁定系统支持并发查询,包括读取和写入
  2. 这是不建议使用二级提供额外的读取能力,因为复制的设计让这款低效和不可靠的大多数用例
  3. 如果您的主服务器花费很长时间来服务单个请求,那么它会锁定其他请求,这应该通过重新设计低效查询或添加合适的索引来解决.
  4. 如果您的服务器尽管优化了查询而难以为多个用户提供服务,请查看您的硬件是否不足以完成工作
  5. 如果您仍然发现需要扩展读写操作,建议的方法是通过分片,而不是使用副本集的其他节点.

  • 如果不建议您使用副本来增加读取容量,那么这有什么用呢?仅备份和容错? (2认同)
  • [副本集用于冗余和高可用性。](https://docs.mongodb.com/manual/replication/) (2认同)
  • 该驱动程序处理以下问题:[MongoDB 驱动程序可以检测主数据库的丢失,并自动重试某些写入操作一次,提供自动故障转移和选举的额外内置处理](https://docs.mongodb.com/manual /复制/#自动故障转移) (2认同)