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 ajustes de configuración para el clúster. Deben implementarse como un conjunto de réplicas (CSRS). A partir de MongoDB 8.0, puede implementar el servidor de configuración como un fragmento de configuración que también almacena datos de la 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 implementaciones en producción, recomendamos implementar el servidor de configuración y los conjuntos de réplicas de fragmentos en al menos tres centros de datos. Esta configuración proporciona alta disponibilidad en caso de que falle un centro de datos.
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, puede implementar el servidor de configuración como un fragmento de configuración que almacena datos de la aplicación además de los metadatos del clúster. Un fragmento de configuración requiere menos nodos que una implementación de servidor de configuración dedicado. Para obtener más información, consulte Fragmentos de configuración.
El siguiente diagrama muestra una arquitectura de clúster fragmentado que utiliza un fragmento de configuración integrado:
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 un fragmento de configuración para pruebas y desarrollo. Este clúster de no producción tiene los siguientes componentes:
Una
mongosinstancia.Un único fragmento de configuración.
Advertencia
Utiliza la arquitectura del clúster de prueba únicamente para pruebas y desarrollo.