A partir de MongoDB 8.0, puedes configurar un servidor de configuración para almacenar los datos de tu aplicación además de los metadatos habituales del clúster. A
mongod nodo que proporciona tanto la funcionalidad de servidor de configuración como de servidor de partición, se denomina partición de configuración. Un mongod nodo que se ejecuta como un --configsvr autónomo sin funcionalidad de servidor de partición se denomina un servidor de configuracióndedicado.
Un clúster debe tener un servidor de configuración, que puede ser una partición de configuración (servidor de configuración integrado/embedded config server) o un servidor de configuración dedicado (dedicated config server). Utilizar una partición de configuración reduce la cantidad de nodos requeridos y puede simplificar su implementación. Un clúster de partición de configuración también se conoce como clúster de servidor de configuración integrado. No se puede utilizar el mismo servidor de configuración para varios clústeres particionados.
Casos de uso
Puede considerar usar un fragmento de configuración si su clúster tiene tres fragmentos o menos.
Si su aplicación tiene requisitos exigentes de disponibilidad y resiliencia, considere implementar un servidor de configuración dedicado. Un servidor de configuración dedicado proporciona aislamiento, recursos dedicados y un rendimiento coherente para operaciones críticas del clúster.
Deberías utilizar un servidor de configuración dedicado si cumples una o más de las siguientes condiciones:
Planeas usar más de tres particiones.
Planeas usar colecciones de Queryable Encryption.
Planeas usar respaldos consultables (local).
Comportamiento
En un clúster de servidores de configuración integrados, se usará un fragmento de configuración para almacenar metadatos del clúster y datos de usuario. Esto ayuda a reducir la complejidad de una implementación de clúster fragmentado.
Puedes almacenar datos de colecciones particionados y no particionados en tu partición de configuración. Tiene todas las propiedades de una partición y además actúa como el servidor de configuración.
Confirmar el uso de Config Shard
Usted puede confirmar que un clúster particionado utiliza una partición de configuración mediante uno de los siguientes métodos:
Ejecuta el método
sh.isConfigShardEnabled()enmongosh. Si la salida desh.isConfigShardEnabled()contieneenabled: true, el clúster utiliza una partición de configuración. Si la salida contieneenabled: false, el clúster no utiliza una partición de configuración.Ejecútate el comando
listShardscontra la base de datosadminmientras estés conectada a unmongose inspecciona la salida para encontrar un documento donde_idesté configurado en"config". Si la salida delistShardsno contiene un documento donde_idesté configurado en"config", el clúster no utiliza una partición de configuración.
El siguiente ejemplo ejecuta el comando listShards e intenta encontrar un documento donde _id esté establecido en "config".
db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")
En este ejemplo, el documento devuelto tiene _id asignado a "config", lo que confirma que este clúster utiliza una partición de configuración.
{ _id: "config", host: "configRepl/localhost:27018", state: 1, topologyTime: Timestamp({ t: 1732218671, i: 13 }), replSetConfigVersion: Long('-1') }
Comandos
Para configurar un servidor de configuración dedicado para que funcione como un fragmento de configuración, ejecute el comando transitionFromDedicatedConfigServer.
Para configurar un fragmento de configuración para que funcione como un servidor de configuración dedicado, ejecute el comando transitionToDedicatedConfigServer.