副本集的MongoDB负载均衡器

时间:2017-05-05 11:38:38

标签: mongodb mongodb-query mongodb-replica-set

在MongoDB的副本集群集中,当我的主要用户正忙于提供其他请求时,如何确保对用户的快速响应?

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

谢谢

2 个答案:

答案 0 :(得分:10)

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

  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,而不是使用副本集的其他节点。

答案 1 :(得分:1)

通常写入由master处理,读取应通过设置读取首选项发送到辅助节点。虽然将数据传播到辅助节点可能需要一些微不足道的时间,因为辅助节点使用oplog副本进行数据复制。

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

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