Pregunta

Cada vez más de las bases de datos NoSQL que se encuentran en el punto de mira utiliza el patrón maestro / esclavo para proporcionar la "disponibilidad", pero lo que hace (al menos desde mi punto de vista) está creando el eslabón débil de una cadena que se va a romper en cualquier momento . -. Maestro deja de funcionar, los esclavos se detiene a la función

Es una gran manera de manejar grandes cantidades de datos e incluso lee las / escritura, pero visto desde una perspectiva disponibilidad? No tanto ...

Yo entiendo de algunos NoSQL de que los esclavos se pueden cambiar para ser un maestro con facilidad, pero hacer esto sería un dolor de cabeza al mango en la mayoría de las aplicaciones. ¿Verdad?

Entonces, ¿cómo la gente toma el cuidado de este tipo de cosas? ¿Cómo funciona maestro / esclavo-bases de datos de trabajo en el mundo real?

¿Fue útil?

Solución

Esta es una pregunta bastante generalizada; se puede especificar lo almacena datos que está específicamente hablando?

He estado trabajando con MongoDB, y que se encarga de esta con mucha gracia; todos los miembros de un "conjunto de réplicas" (básicamente, un conjunto maestro-esclavo) es elegible para convertirse en el maestro. Sobre la conexión a un conjunto de réplicas, el conjunto le dirá al cliente que se conecta casi todos los miembros del conjunto. Si el maestro en el conjunto queda fuera de línea, los esclavos elegirán automáticamente un nuevo maestro, y el cliente (ya que tiene una lista de todos los nodos del conjunto) intentará nuevos nodos hasta que se conecte; el nodo se conecta a la voluntad de informar al cliente sobre el nuevo maestro, y el cliente conmuta su conexión a través de. Esto permite una total transparencia de conmutación por error de maestro / esclavo sin ningún cambio en su aplicación.

Esto es obviamente muy bien para las conexiones individuales, pero ¿qué pasa reinicia? El controlador se encarga de esta MongoDB también; que puede aceptar una lista de nodos a intentar la conexión a, y tratará en serie hasta que encuentra uno a conectarse. Una vez que se conecte, se le pedirá el nodo que es su maestro, y remitir la conexión allí.

El resultado neto es que si usted tiene un conjunto de réplicas establecido, puede en efecto sólo se preocupe de que cualquier nodo sola explosión le llevará fuera de línea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top