MongoDB 副本集的负载均衡器

MongoDB load balancer for the Replica set

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

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

谢谢

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

您不需要任何负载平衡器,Mongo 能够完成这些事情。 在这里阅读更多相关信息 -

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

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

  1. MongoDB supports concurrent queries, both reads and writes, using a granular locking system
  2. 它是 not advised to use secondaries to provide extra read capacity,因为复制设计使其在大多数用例中效率低下且不可靠
  3. 如果您的主服务器花费很长时间来处理单个请求,从而将其他请求拒之门外,则应通过重新设计低效查询或添加合适的 indexes.
  4. 如果尽管优化了查询,您的服务器仍难以为多个用户提供服务,请查看您的 hardware 是否不足以胜任工作
  5. 如果您仍然发现需要扩展读写,推荐的方法是 sharding,而不是使用副本集的其他节点。