0

关于:请求分发问题和系统陷入困境。

最近我在生产服务器中配置了 MongoDBSharding,下面给出了详细信息。

  1. 我为 mongo 分片配置使用了 3 台单独的机器。

    • 第一台机器 - (shard1 primary + shard2 secondary + shard2 arbitor) + Config
    • 第二台机器 - (shard2 primary + shard1 secondary + shard1 arbitor) + Config
    • 第三台机器——配置
  2. 我拥有的不仅仅是 NODE.JS 服务器。所以我在每个节点服务器中启动了 mongos,块大小为 5 MB(例如,在每个节点服务器中使用 6 个节点服务器和 6 个 mongos 即时)。

  3. 在我在 mongos 中配置分片设置后,创建了一个数据库,并自动将其作为“shard2”作为主数据库。

但我的问题是我无法将请求分发到我从 NODE.JS 获得的两个分片,因为它自动将 shard2 作为该数据库的主要分片。所以所有请求都只命中 shard2 瞬间。因此,第二台机器因负载问题而陷入困境并获得更多的 CPU 使用率。

请分享您对解决此类问题的意见和建议。

图表

客户端 -> NODE.JS 服务器 -> MONGODB [第一台机器 + 第二台机器 + 第三台机器]

4

2 回答 2

0

这是意料之中的。默认情况下,所有数据都会转到数据库的主数据库,直到它开始拆分数据。拆分后,它将被定向到正确的分片而不是主分片,但拆分操作必须已经发生。您也可以预拆分。见http://www.mongodb.org/display/DOCS/Splitting+Shard+Chunks

于 2011-11-30T14:34:26.057 回答
0

您是否指定了分片键

于 2011-11-30T01:56:12.540 回答