10

在 MongoDB 的副本集集群中,当我的主节点忙于服务另一个请求时,如何确保对并发用户的快速响应?

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

谢谢

4

2 回答 2

18

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

  1. MongoDB 使用粒度锁定系统支持并发查询,包括读取和写入
  2. 建议使用辅助设备来提供额外的读取容量,因为复制设计对于大多数用例而言效率低下且不可靠。
  3. 如果您的主服务器需要很长时间来处理单个请求,从而锁定其他请求,则应通过重新设计低效查询或添加合适的索引来解决此问题。
  4. 如果您的服务器在优化查询的情况下仍难以为多个用户提供服务,请查看您的硬件是否不足以完成这项工作
  5. 如果您仍然发现需要扩展读写,推荐的方法是通过分片,而不是使用副本集的其他节点。
于 2017-05-05T15:25:36.717 回答
2

通常写入由主机处理,读取应通过设置读取首选项发送到辅助服务器。尽管将数据传播到辅助节点可能需要一些可忽略的时间,因为辅助节点使用 oplog 副本进行数据复制。

你不需要任何负载均衡器,Mongo 能够做这些事情。在此处阅读更多相关信息 -

https://docs.mongodb.com/manual/replication/

于 2017-05-05T12:36:31.267 回答