MongoDB 集群配置涉及多个组件,包括分片服务器、配置服务器和路由服务器(mongos)。以下是详细的配置指南:
分片服务器存储实际的数据。通常,每个分片是一个副本集。
mongo --host <shard-server1>:27017
rs.initiate(
{
_id: "rs0",
members: [
{ _id: 0, host: "<shard-server1>:27017" },
{ _id: 1, host: "<shard-server2>:27017" },
{ _id: 2, host: "<shard-server3>:27017" }
]
}
)
mongo --host <mongos>:27017
sh.enableSharding("<database>")
{"<field>": 1}
。sh.shardCollection("<database>.<collection>", { "<field>": 1 })
配置服务器存储集群的元数据。通常,配置服务器也是一个副本集。
mongo --host <config-server1>:27017
rs.initiate(
{
_id: "cfgReplSet",
configsvr: true,
members: [
{ _id: 0, host: "<config-server1>:27017" },
{ _id: 1, host: "<config-server2>:27017" },
{ _id: 2, host: "<config-server3>:27017" }
]
}
)
路由服务器是应用程序与分片集群之间的接口。
mongo --host <mongos>:27017
sh.addShard("<shard-server1>:<port>,<shard-server2>:<port>,<shard-server3>:<port>")
sh.addConfigServer("<config-server1>:<port>,<config-server2>:<port>,<config-server3>:<port>")
sh.enableSharding("<database>")
sh.shardCollection("<database>.<collection>", { "<field>": 1 })
mongo --host <mongos>:27017
sh.status()
mongo --host <mongos>:27017
sh.status("configsvr")
通过以上步骤,您可以成功配置一个 MongoDB 集群。请根据您的具体环境和需求进行调整。