mongod Configserver 是否还包含数据(元数据除外)?

Does a mongod Configserver also contain data (except metadata)?

我刚开始 MongoDB,找不到问题的答案。 出于测试目的,我想创建一个 3 Datanode 集群,但到目前为止我不确定我需要多少台机器来启动一个具有 3 个 Datanode 的集群。我想在集群中有 2 个路由服务器。

我目前的理解是我需要 4 台机器。

  1. 机器(Configserver 和 Routingserver):运行 mongod --configsrvmongos
  2. 机器(分片和路由服务器):运行mongodmongos
  3. 机器(碎片):只运行mongod
  4. 机器(碎片):只运行mongod

所以在我看来一个 mongod --configsrv 不能同时是一个碎片?

在MongoDB中,配置服务器将存储分片集群元数据以外的任何数据。如果您手动连接到配置服务器并尝试写入数据,则会收到此错误:

WriteResult({
    "nInserted" : 0,
    "writeError" : {
            "code" : 14037,
            "errmsg" : "can't create user databases on a --configsvr instance"
    }
})

关于服务器数量,每个分片应该运行在自己的机器上。因为你只有两个分片,所以你可以使用 2 台机器,但是,4 台机器是可取的,这样你就可以为两个分片都有一个主副本集和一个辅助副本集。配置服务器和路由服务器可以运行在四台机器的任何一台上,所以你只需要4台机器。