sql >> Base de Datos >  >> NoSQL >> MongoDB

Conjunto de réplicas MongoDB de dos nodos sin árbitro

Respuesta corta:no.

Respuesta larga:la forma en que funciona la conmutación por error automática en MongoDB es que un conjunto de réplicas necesita una mayoría calificada para elegir con éxito una nueva primaria. Los miembros retrasados ​​tienen votos en las elecciones. Así que si cualquiera de sus nodos falla, el conjunto de réplicas descubre que no tiene esta mayoría y el primario actual se reduce incluso si no falló. Entonces, lo que esencialmente haces es duplicar las posibilidades de que su conjunto de réplicas falle. Un árbitro es un proceso muy económico, en términos de uso de RAM, CPU e incluso espacio en disco cuando se ejecuta con --smallfiles --no-journal --noprealloc o las opciones equivalentes establecidas en el archivo de configuración. Tenga en cuenta que las opciones mencionadas son seguras de usar, ya que un árbitro esencialmente solo verifica los latidos del corazón de los nodos que contienen datos. Podría poner el árbitro en el servidor de aplicaciones, por ejemplo.

Descargo de responsabilidad:se desaconseja encarecidamente utilizar el siguiente procedimiento. Proceda bajo su propio riesgo.

Puede establecer los votos del servidor retrasado en 0. De esta manera, el nodo no retrasado llamará a una elección en caso de que el miembro retrasado falle, llegue a la conclusión de que es el único nodo en línea del conjunto de réplicas y que tiene la mayoría de votos (1/1) y seguirá funcionando como se espera. Este curso de acción necesita algo de atención, ya que volverá a tener un número par de votos en caso de que agregue un miembro al conjunto de réplicas más adelante y sea necesario reconfigurar el conjunto de réplicas. También tiene serias implicaciones con los problemas de fragmentación de la red. Nuevamente:Usar bajo su propio riesgo