Un clúster particionado de MongoDB incluye los siguientes componentes:
partición: cada fragmento contiene un subconjunto de los datos particionados. Cada partición debe implementarse como un set de réplicas.
Enrutamiento con mongos:
mongosactúa como un enrutador de queries y proporciona una interfaz entre las aplicaciones cliente y el clúster particionado.servidores de configuración: los servidores de configuración almacenan metadatos y configuraciones para el clúster. Los servidores de configuración deben implementarse como un set de réplicas (CSRS). A partir de MongoDB 8.0, puede implementar el servidor de configuración como una partición de configuración que también almacena datos de aplicación.
Configuración de Producción
En un clúster de producción, asegúrate de que los datos sean redundantes y que tus sistemas tengan alta disponibilidad. Ten en cuenta lo siguiente para una implementación de un clúster de producción particionado:
Implementa los servidores de configuración como un set de réplicas de 3 nodos.
Implementar cada fragmento como un set de réplicas de 3 nodos
Implementar uno o más routers
mongos
Distribución del set de réplicas
Para las implementaciones de producción, recomendamos implementar el servidor de configuración y los sets de réplicas de particiones en al menos tres centros de datos. Esta configuración proporciona alta disponibilidad en caso de que un solo centro de datos falle.
Número de particiones
El particionado requiere al menos dos particiones para distribuir los datos particionados. Los clústeres particionados con una sola partición pueden ser útiles si planeas activar el particionado en un futuro cercano, pero no lo necesitas en el momento de la implementación.
Número de mongos y Distribución
mongos routers admiten alta disponibilidad y escalabilidad al implementar múltiples instancias de mongos. Si un proxy o balanceador de carga está entre la aplicación y los routers mongos, debes configurarlo para afinidad de cliente. La afinidad de cliente permite que cada conexión de un único cliente llegue al mismo mongos. Para lograr alta disponibilidad a nivel de partición:
Agrega instancias
mongosen el mismo hardware donde ya se están ejecutando instanciasmongod.Incrusta routers
mongosen el mismo hardware donde está alojada la aplicación.
mongos Los routers se comunican con frecuencia con tus servidores de configuración. A medida que aumentas el número de routers, el rendimiento puede degradarse. Si el rendimiento disminuye, reduce el número de routers.
El siguiente diagrama muestra una arquitectura común de clúster fragmentado utilizada en producción:

Fragmentos de configuración
Nuevo en la versión 8.0.
A partir de MongoDB 8.0, puedes implementar el servidor de configuración como una partición de configuración que almacena datos de aplicaciones además de los metadatos del clúster. Una partición de configuración requiere menos nodos que una implementación de servidor de configuración dedicada. Para obtener más información, consulte Configuración de partición.
El siguiente diagrama muestra una arquitectura de clúster particionado que utiliza una partición de configuración incrustada:
Configuración de desarrollo
Para las pruebas y el desarrollo, puedes implementar un clúster con un número mínimo de componentes. Estos clústeres no productivos tienen los siguientes componentes:
Una
mongosinstancia.Un set de réplicas con una sola partición.
Un servidor de configuración del set de réplicas.
El siguiente diagrama muestra una arquitectura de clúster fragmentado utilizada solo para desarrollo:

A partir de MongoDB 8.0, puede implementar una partición de configuración para pruebas y desarrollo. Este clúster no productivo tiene los siguientes componentes:
Una
mongosinstancia.Una única partición de configuración.
Advertencia
Utiliza la arquitectura del clúster de prueba únicamente para pruebas y desarrollo.