配置分片
从 MongoDB 8.0 开始,您可以为配置服务器配置,以便除了通常的分片集群元数据外,还可以存储您的应用程序数据。mongod
提供配置服务器和分片服务器功能的节点称为配置分片。一个作为独立 --configsvr
运行而不具有分片服务器功能的 mongod
节点称为专用 配置服务器。
分片集群必须有一个配置服务器,但它可以是配置分片(嵌入式配置服务器)或专用配置服务器。使用配置分片可以减少所需的节点数量并简化您的部署。配置分片集群也称为嵌入式配置服务器集群。您不能为多个分片集群使用相同的配置服务器。
使用场景
如果您的集群有3个或更少的分片,可以考虑使用配置分片。
如果您的应用程序对可用性和弹性要求较高,请考虑部署专用配置服务器。专用配置服务器为关键集群操作提供隔离、专用资源和一致的性能。
如果您满足以下条件之一或多个,应使用专用配置服务器:
行为
在嵌入式配置服务器集群中,配置分片将用于存储集群元数据和用户数据。它有助于降低分片集群部署的复杂性。
您可以在配置分片中存储分片和非分片集合数据。它具有分片的所有属性,同时充当配置服务器。
确认使用配置分片
要确认分片集群使用配置分片,请在连接到mongos
时针对admin
数据库运行listShards
命令,并检查输出中_id
设置为"config"
的文档。如果listShards
输出不包含_id
设置为"config"
的文档,则集群不使用配置分片。
以下示例运行了listShards
命令并尝试找到_id
设置为"config"
的文档。
db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")
在此示例中,返回的文档的_id
设置为"config"
,这证实了该集群使用配置分片。
{ _id: "config", host: "configRepl/localhost:27018", state: 1, topologyTime: Timestamp({ t: 1732218671, i: 13 }), replSetConfigVersion: Long('-1') }
命令
要配置一个专用配置服务器作为配置分片运行,请运行transitionFromDedicatedConfigServer
命令。
要配置配置分片作为专用配置服务器运行,请运行transitionToDedicatedConfigServer
命令。