Un MongoDB El clúster fragmentado consta de 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 consultas y proporciona una interfaz entre las aplicaciones cliente y el clúster fragmentado.mongospuede admitir lecturas protegidas para minimizar las latencias.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).
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 desplegar el servidor de configuración y los Sets de réplicas de fragmentos 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:

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:

Advertencia
Utiliza la arquitectura del clúster de prueba únicamente para pruebas y desarrollo.