【问题标题】:Connecting to a mongoDB Replica Set Using Mongos On App Server在应用服务器上使用 Mongos 连接到 mongoDB 副本集
【发布时间】:2014-04-09 05:40:09
【问题描述】:

我们目前正面临连接到多个 Mongo 副本集的连接高峰问题,这是由于我们运行的 PHP-FPM 子节点的数量造成的。在 16 台前端服务器的情况下,我们看到峰值一直上升到 20K 连接,这实际上使我们的 Mongo 集群崩溃。

我们被告知只有两个可行的选项是 A,限制 PHP-FPM 工作程序(我们尝试过的东西,这导致了一个 10GB 的错误日志,告诉我们提高工作人员的最大数量)或为我们的每个应用服务器添加一个 mongos 服务器,因为它内置了连接池。

我们目前无法弄清楚我们应该如何转换我们当前的连接字符串,以使用 mongos。

我们的连接字符串如下所示:

mongodb://admin:<password>@SG-cache1-2342.servers.xxx.com:27017,SG-cache1-2343.servers.xxx.com:27017,SG-cache1-2344.servers.xxx.com:27017/admin?replicaSet=RS-cache1-0

我们如何将此字符串转换为 mongos 接受的正确格式。我们尝试了所有可能的字符串组合,添加和删除片段,但最终都失败了。

【问题讨论】:

    标签: php mongodb


    【解决方案1】:

    当您连接到 mongos 时,您不再连接到 ReplicaSet。这意味着应该省略replicaSet 选项。

    此外,mongos 背后的配置服务器已经配置了您的 ReplicaSet 的全部知识 - 因此您无需告诉 mongos 任何有关 ReplicaSet 服务器的信息。

    正确的连接字符串是:

    mongodb://admin:<password>@mongos1.servers.xxx.com:27017/admin
    

    您可以像这样列出多个 mongos 服务器:

    mongodb://admin:<password>@mongos1.servers.xxx.com:27017,mongos2.servers.xxx.com/admin
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多