A partir de MongoDB 8.0, puede configurar un servidor de configuración para almacenar los datos de su aplicación además de los metadatos habituales de clústeres fragmentados. Un nodo mongod que proporciona tanto la funcionalidad de servidor de configuración como de servidor de fragmentos se denomina fragmento de configuración. Un nodo mongod que se ejecuta como un --configsvr autónomo sin funcionalidad de servidor de fragmentos se denomina servidor de configuración dedicado.
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
Un fragmento de configuración cuesta menos que un servidor de configuración dedicado, ya que este último se ejecuta como su propio conjunto de réplicas. Un fragmento de configuración integra la función de servidor de configuración en el conjunto de réplicas de un fragmento existente, por lo que el clúster solo necesita un conjunto de réplicas en lugar de dos. El uso de un fragmento de configuración no tiene un impacto apreciable en el rendimiento con un número reducido de fragmentos. Un servidor de configuración dedicado aísla los metadatos del clúster de los datos de la aplicación, lo cual es necesario para ciertas funcionalidades.
Utilice un servidor de configuración dedicado si utiliza una o más de las siguientes funciones:
Colecciones decifrado consultables
Copias de seguridad consultables (en las instalaciones)
En MongoDB Atlas, un clúster pasa automáticamente de un fragmento de configuración a un servidor de configuración dedicado cuando tiene más de cinco fragmentos.
Comportamiento
En un clúster de servidores de configuración integrados, se utilizará una partición de configuración para almacenar los metadatos del clúster y los datos del usuario. Ayuda a reducir la complejidad de una implementación de clúster particionado.
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 partición
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.