NCache Arquitectura y demostración de recuperación de cerebro dividido

NCache proporciona una importante capacidad arquitectónica de alta disponibilidad llamada Detección y recuperación de cerebro dividido. Mire este video para aprender sobre esta capacidad y luego vea una demostración práctica de NCache Recuperación de cerebro dividido.

Hoy voy a hablar de la NCache arquitectura de recuperación de cerebro dividido y también le ofreceremos una demostración.

ncache-en-aplicaciones-de-misión-crítica

NCache es un caché distribuido en memoria para .NET y .NET Core aplicaciones También es compatible con aplicaciones Java y Node.js. NCache se usa en aplicaciones de transacciones más altas donde su aplicación se ejecuta en múltiples servidores de aplicaciones. Estas pueden ser sus aplicaciones web, sus aplicaciones de microservicios o cualquier otra aplicación de servidor. Y, NCache se encuentra entre el nivel de la aplicación y su base de datos, ya sea un servidor SQL u Oracle tipo de base de datos relacional o cualquier NoSQL database como CosmosDB o MongoDB o cualquier base de datos o datos de mainframe heredados. Y, NCache generalmente tiene dos o más servidores de caché en un clúster y para este entorno de aplicación de misión crítica NCache le brinda alta disponibilidad y, como parte de esa alta disponibilidad, hay una característica muy importante llamada detección de cerebro dividido y recuperación de cerebro dividido de la que voy a hablar.

Arquitectura de clúster de caché dinámica

Antes de entrar en el cerebro dividido, permítanme darles rápidamente una descripción general de los NCache arquitectura de agrupamiento de caché dinámica.

clúster de caché dinámica

Esta es una arquitectura basada en TCP donde cada servidor está conectado a todos los demás servidores a través de un socket TCP. Es una arquitectura peer-to-peer que se autorrepara. La autocuración significa que se ajusta automáticamente a cualquier cambio. Y no hay un único punto de falla debido a esa arquitectura de igual a igual. Eso significa que no hay amo, no hay esclavo. Hay un nodo coordinador de clúster que suele ser el nodo más antiguo del clúster. Pero, si eso alguna vez falla, el siguiente nodo más antiguo se convierte automáticamente en su sucesor. Un coordinador de clúster es responsable de administrar el clúster. Gestiona la pertenencia al clúster. Gestiona, en caso de topología de Partición o Partición-Réplica, gestiona el mapa de distribución de datos. Y también administra la salud del clúster.

Ahora, como dije, cada nodo en este clúster está conectado a todos los demás nodos y realiza un seguimiento de esa conexión. Y, si esa conexión alguna vez se interrumpe, hay una función de conmutación por error de conexión dentro del clúster que consiste en que ese nodo realiza reintentos automáticamente, reintentos múltiples, que es una opción configurable y cada reintento tiene un tiempo de espera. Y también hay una función de latido del corazón en la que sigue enviando un latido del corazón a un intervalo configurable para asegurarse de que la conexión del socket esté activa. La razón por la que se hace todo eso es porque en la mayoría de las situaciones es suficiente para garantizar que cualquier interrupción de la conexión se restaure o recupere automáticamente. Y la razón de esto es que los servidores de caché generalmente se implementan en el mismo centro de datos, de hecho, en la misma subred. Por lo tanto, la conexión entre estos servidores de caché suele ser muy fiable. Y, el cerebro dividido no ocurre con mucha frecuencia, pero a veces lo hace. Y, cuando lo haga, hablaré sobre cómo lo manejamos.

De todos modos, esta arquitectura le permite agregar o eliminar cualquier servidor de caché en tiempo de ejecución sin detener el caché ni ninguna de sus aplicaciones. Y cada vez que agrega un servidor de caché al clúster, el coordinador del clúster actualiza el mapa de membresía del clúster y lo propaga dinámicamente a todos los servidores de caché, quienes luego lo propagan dinámicamente a todos los clientes. Y, de manera similar, si se trata de una topología de partición o réplica de partición, incluso el mapa de distribución de datos se actualiza y puede acceder a la NCache video de arquitectura para más detalles al respecto. Pero, una topología de partición o réplica de partición tiene 1000 cubos, que es el mapa de distribución y el mapa, básicamente, le dice a los servidores qué cubos tiene cada servidor y cuando se envía a los clientes, los clientes saben dónde están los datos. Entonces, este es el clúster de caché dinámico.

Conexiones dinámicas de clientes

El segundo aspecto de esto son las conexiones de cliente dinámicas, que es que, al igual que la conexión dentro del clúster es dinámica, la conexión entre los clientes y el clúster también es dinámica.

conexiones dinámicas de cliente

Y es una conexión basada en TCP muy ligera. Y, si esa conexión alguna vez falla, hay nuevamente una función de conmutación por error de conexión donde hay reintentos y tiempos de espera. Y, también hay una función de mantener vivo donde el cliente sigue enviando un mensaje de tipo latido al clúster para asegurarse de que la conexión se mantenga activa. En realidad, la probabilidad de interrupción de la conexión entre los clientes y el clúster es mayor que dentro del propio clúster y la razón es que los clientes podrían implementarse en una subred separada, incluso a través del firewall. Entonces, todo eso generalmente aumenta las posibilidades de que se rompan los enchufes. Entonces, siempre que eso suceda, los clientes pueden volver a conectarse. Por lo tanto, hay una función de conmutación por error de conexión.

Toda esta arquitectura le permite agregar o eliminar clientes en tiempo de ejecución sin detener el caché o la aplicación. Y, cada vez que se agrega un cliente, el cliente obtiene la información de membresía del clúster del clúster y luego, si es una topología de partición o réplica de partición, también obtiene el mapa de distribución de datos que mostré aquí del clúster. Y eso le permite al cliente saber automáticamente cuántos servidores hay en el clúster, quiénes son. Por lo tanto, puede conectarse a ellos en solo una topología de partición o réplica de partición y también saber cuál es el mapa de distribución de datos.

Detección de cerebro dividido

Entonces, considerando toda esa arquitectura, todavía hay una situación a pesar del hecho de que hay resiliencia integrada en la conexión TCP a través de reintentos y tiempos de espera, pero una conexión realmente puede romperse entre los servidores de caché por alguna razón. Podría ser una razón de hardware. Podría ser un problema del controlador de red o podría deberse a una variedad de razones. Cada vez que eso sucede, lo llamamos una ruptura de conexión.

detección de cerebro dividido

Entonces, en la arquitectura de agrupamiento de caché, cada nodo en el clúster sigue detectando si hay una interrupción de la conexión, lo que significa que, a pesar de los reintentos, la conexión aún se rompió. Cada vez que se interrumpe una conexión, cada nodo asume que el otro nodo ha muerto. Entonces, sigue hablando con todos los otros nodos. Entonces, por ejemplo, si tiene un servidor aquí, este nodo está hablando con los tres. Entonces, este nodo puede fallar. Entonces, este nodo puede hablar con estos tres. Cuando eso suceda, asumirá que estos tres ahora son un grupo de tres y este nodo se ha ido. Entonces, cuando sucede algo así, digamos, un grupo de seis nodos y solo voy a dar el ejemplo de que las conexiones se rompen de tal manera que tres de ellos pueden hablar entre sí, estos dos son capaces de hablar entre ellos y este no es capaz de hablar con nadie.

Entonces, cuando eso sucede cuando estos nodos detectan todo eso, todos asumen que, está bien, soy un grupo de tres porque puedo hablar con estos tres nodos y cuando soy un grupo de tres entonces uno de mis los nodos se convertirán en un coordinador de clúster que puede que ya sea un coordinador de clúster porque si es el s1, que probablemente era el más antiguo y sigue siendo el coordinador de clúster aquí. Pero, en caso de división en dos, s4 se convierte en el nuevo coordinador de clúster para este clúster. Y, para la división 3, s6 es el único nodo que también se convierte en el coordinador. Ahora, en esta situación, estos nodos saben que estos tres nodos pueden hablar con estos tres nodos. Entonces, dice está bien, estoy bien, los otros han muerto. Este piensa lo mismo, que bueno que los demás han muerto. Estos piensan que soy bueno los otros han muerto.

Pero también saben que se supone que soy un grupo de seis nodos. Entonces, siguen intentando hacer ping a todos los demás nodos para ver si van a volver a funcionar. Y, el ping ocurre durante un intervalo configurable, después del cual simplemente se darán por vencidos y asumirán que estos nodos se han caído permanentemente y soy el único que queda. Pero, dentro de ese intervalo, si digamos la conexión, la conexión de red se restaura y estos nodos ahora son visibles entre sí. Entonces, digamos que todos ellos pueden verse entre sí en este ejemplo. Entonces, ahora se dan cuenta de que hemos creado tres divisiones separadas, pero podemos hablar entre nosotros.

Entonces, ahora lo harán formalmente, NCache detectará formalmente una división. A pesar de que la división ocurrió en el momento en que se rompieron las conexiones, NCache Los nodos no sabían que se trataba de una división porque pensaron que todos habían muerto. Pero, si esos nodos regresaron dentro de ese intervalo especificado, entonces los nodos de caché dirán, está bien, se ha producido una división y ahora es el momento de realizar una recuperación dividida. Y, la razón por la que esto se hace es porque su aplicación necesita un clúster de caché saludable para continuar trabajando y, aunque la división no es una situación saludable, si puede recuperarse de ella automáticamente, en lugar de que su personal administrativo tenga que intervenir en horas extrañas. del día o de la noche o los fines de semana. Entonces te hace la vida más fácil. NCache vuelve automáticamente a un estado saludable, un grupo saludable de seis. Pero, ¿cómo sucede eso?

La primera es que se detecta la división como dije, se detecta solo cuando se restablece la conexión y pueden verse. Hasta ese momento asumen que otros otros están muertos. ¿Okey? Ahora que se detecta esa división, ahora se activa la recuperación de la división.

Recuperación de cerebro dividido

¿Qué implica la recuperación dividida?

recuperación del cerebro dividido

Por lo tanto, en la recuperación dividida, los dos subgrupos más grandes o las dos divisiones más grandes se fusionan primero. Y, el grupo de esta división y el grupo de esta división, se coordinan entre sí para decir que está bien, ya que soy el más pequeño de los dos y el tamaño aquí se basa en la cantidad de nodos en cada grupo. Podría haberse basado en la cantidad de datos. Podría haberse basado en la cantidad de actividad y la cantidad de clientes, pero elegimos la cantidad de nodos porque esa era la situación más probable. Porque, en la mayoría de las situaciones, cada nodo tiene prácticamente la misma cantidad de datos debido a la distribución del mapa hash, porque hay miles de cubos que están distribuidos uniformemente, porque hay una característica de equilibrio de datos en NCache que reequilibra los datos entre nodos si alguna vez se sale del equilibrio.

Entonces, todo eso significa que la situación más probable es que cada nodo tenga aproximadamente la misma cantidad de datos. Entonces, la mayor cantidad de nodos significa la mayor cantidad de datos. Entonces, eso se convierte en el maestro. Y esta otra división tiene que ceder sus datos y volver a unirse a este clúster como nodos nuevos. Entonces, lo primero que hace, renuncia a sus clientes, cuenta. Entonces, estos dos servidores, este coordinador le dice a su otro nodo que está bien, debemos renunciar a los clientes y decirles que se conecten a este clúster. Entonces, lo primero que sucede es que los clientes se mueven al nuevo clúster porque este es el clúster maestro en buen estado. Una vez que los clientes se han mudado aquí, ahora este clúster entrega sus datos y esencialmente puede ver que se reinicia. Aunque no se reinicia, solo entrega sus datos y vuelve a unirse a este clúster como un nodo en buen estado.

Y ahora, como resultado, tiene un clúster de cinco nodos que es una fusión de la división uno y la división dos. Entonces, una vez hecho esto, pasa a la siguiente división más grande y la fusiona con esta. Ahora, en nuestro caso, solo teníamos tres divisiones, pero podría tener más de tres y el algoritmo es que comienza con el más grande y lo fusiona con el siguiente más grande y el siguiente más grande y así y así. Por lo tanto, realiza tantas iteraciones como sea necesario, pero en cualquier momento solo se fusionan dos divisiones. Entonces, mientras estas dos divisiones se fusionan, la tercera división se considera independiente y continuará realizando sus operaciones hasta que la división se fusione y ahora esta fusión sucederá.

Y, si hubiera una cuarta división, también se fusionaría después de esta. Por lo tanto, en este proceso, tenga en cuenta que, dependiendo de cuántos nodos hayan tenido que perder o renunciar a sus datos, perderá datos. Entonces, por ejemplo, en este caso, tres nodos se vuelven maestros, los otros tres pierden sus datos. Incluso en una topología de réplica de partición, solo tiene una réplica por partición. Por lo tanto, perderá datos y esa es solo una parte de esta situación. Sin embargo, la otra parte de esta realidad es que si se trata de una situación de almacenamiento en caché de datos, estos datos ya están llegando. Esto ya existe en la base de datos. Entonces, no está perdiendo los datos, solo tiene que volver a cargarlos desde la base de datos. Puede volver a cargarlo en función de los aciertos y errores de las operaciones de su aplicación. También puede recargarlo en función de la lectura completa. También puede volver a cargarlo en función de la función de actualización de caché de NCache pero de cualquier manera esos datos no se pierden.

Sin embargo, si los datos eran más bien un estado de sesión, cualquier otro dato transitorio que no existiera en un almacén permanente, entonces esos datos los ha perdido. Entonces, en ese caso, debe volver a crear esas sesiones. Pero, a pesar de que la pérdida de datos sigue siendo una mejor situación porque, después de todo, ha tenido una falla en la red. Entonces, eso tiene consecuencias.

En la próxima versión de NCache, vamos a proporcionar una función de persistencia en la que puede conservar la memoria caché. Y, un caché persistente significa que lo que sea que haya en el caché, se mantiene en sí mismo, NCachepropia tienda de persistencia y de esa manera en una recuperación de cerebro dividido, no perderá ni siquiera los datos transitorios, porque NCache mantiene una copia en un almacén persistente. Pero, repasaré eso cuando esa función se haga pública. Entonces, en este momento solo voy a hablar de esto.

Demostración práctica

Entonces, espero haber explicado esta arquitectura. Ahora, les daré una demostración de cómo pueden hacer esto exactamente en NCache. Entonces, tengo un ejemplo en el que tengo cinco servidores de caché y voy a crear una división entre esta y esta lista.

cluster-split-ips

Solo voy a crear estas dos divisiones. La división uno va a contener estos dos servidores de caché y la división dos va a contener estos dos servidores de caché. Y tengo un cliente de Windows que voy a usar, que es donde estoy sentado ahora, que voy a usar para administrar y monitorear. Y tengo un cliente de Linux que tengo dos estantes abiertos para este cliente. Entonces, puedo tener dos aplicaciones cliente separadas lanzadas desde allí. Entonces, tengo este clúster ejecutándose en este momento. No voy a mostrarte cómo agregar este grupo porque hay otros videos que te muestran cómo hacerlo. Solo voy a mostrarte la parte del cerebro dividido.

Supervisar el estado y las estadísticas del clúster

Entonces, aquí, tengo un clúster de cinco nodos. Tengo un clúster de cinco nodos. Entonces, tengo un clúster de cinco nodos que está justo aquí y se está ejecutando. Está bien y voy a seguir adelante y abrir las estadísticas y también voy a abrir su monitor. Entonces, lo que he hecho es que he abierto dos diferentes NCache ventanas del administrador. Uno está conectado al .97 que está justo aquí, y el otro está conectado al .82 aquí mismo. Entonces, este es .97 que tengo el gerente real. Tengo el monitor y tengo las estadísticas. Y, el segundo es el .82 y voy a hacer esto de nuevo. Es el mismo clúster, pero solo estoy hablando con un servidor diferente para la administración. Estoy hablando de este servidor en comparación con este, justo aquí. Y, en esto, voy a volver a hacer estadísticas. Entonces, puedo ver la actividad. Actualmente no hay actividad porque todavía no tengo ningún cliente ejecutándose. Y también voy a abrir el monitor.

caché de demostración

Entonces, ¿por qué abrí dos de estos? Porque quiero monitorear, quiero conectarme a este nodo y quiero conectarme a este nodo. Entonces, cuando hago el split puedo ver. Porque, si solo estoy conectado a esto cuando ocurre la división, solo mostrará que solo me quedan dos servidores y estos no los podrá ver. Entonces, quiero ver esto desde ambas perspectivas. Porque voy a presentar la división a través de una regla de firewall, por supuesto, en su caso no tendrá la regla de firewall. Tendrá algún tipo de corte de red. Entonces, voy a presentar o simular eso a través de una regla de firewall. Entonces, ahora estoy conectado a este nodo para administración y monitoreo y este nodo para administración y monitoreo. Y ahora voy a venir aquí y voy a... oh no, todavía no.

También usaré esta línea de comando para llamar a Get-Caches-Server y hablaré con .82 aquí.

línea de comandos-82

Voy a hablar con 82 y decirle que me dé los detalles de todos los cachés que tiene. Entonces, .82 está diciendo, tengo un caché llamado democache en el que tengo cinco servidores; 82, 102, 122, 97 y 117. Un clúster de cinco servidores porque no hay división en este momento.

Voy a ir al otro servidor, el 97.

línea de comandos-97

Voy a preguntarle lo mismo. Dije dame tu servidor. Todo dice bien, tengo un caché de cinco servidores; 82, 102, 122, 97 y 117, actualmente. Entonces, es un clúster de cinco servidores, sin división, todo está bien.

Simule el estrés usando Test-Stress Powershell Cmdlet

Todo está funcionando bien. Ahora voy a iniciar la aplicación. Tengo una ventana de PowerShell. En realidad, esta es una caja de Linux aquí. Voy a mostrarles lo que pasó aquí. ¡Vamos! Solo voy a abrir PowerShell nuevamente. Mis disculpas. Solo voy a importar este módulo que es el NCache módulo de gestión. Solo tienes que hacer eso en Linux. No tienes que importar esto en Windows. Entonces diré Test-Stress democache. Bueno. Entonces, ahora he ejecutado esta de esta herramienta. Voy a hacer lo mismo aquí.

prueba-estrés-demostración-caché

Voy a decir Test-Stress democache. Tengo ambos de estos. Ahora mira, tengo actividad sucediendo. Tengo actividad en los cinco nodos, como pueden ver aquí, uno dos tres cuatro cinco. En los cinco nodos tengo actividad. Aquí mismo, puedo ver eso. Aquí también. Tengo cinco nodos. Estoy hablando de 97 otra vez, esto es .97 ahora.

97 puertos antes de la división

A ver si puedo ver lo mismo aquí también. Entonces, iré a .82 y veré que tengo actividad en cinco nodos. La ventana de estadísticas también muestra actividad.

82 puertos antes de la división

¡Okey! Entonces, todo está funcionando bien. Normalmente, no abriría este y el monitor del administrador de caché en dos servidores diferentes. La razón por la que estoy abriendo es porque necesito mostrar la división y cuando ocurre la división, necesito mostrarles lo que está sucediendo desde ambos lados de la división.

Inducir una desconexión de red

¡Okey! Ahora que tengo todo funcionando. Ahora voy a seguir adelante y presentar. Entonces, lo que voy a hacer en estos dos cuadros, voy a usar la regla de firewall. Entonces, voy a usar el firewall aquí. Usaré un cortafuegos aquí. Entonces, ya tengo esas dos reglas configuradas. Entonces, voy a iniciar sesión. Estoy conectado a 97 aquí. Tengo una regla aquí. Voy a ir a digamos que tengo una regla de entrada. Es NCache, lo acabo de llamar NCache cerebro dividido. Esta regla dice bloquear la conexión en qué puertos, 78 a 7900, ese es el caché.

regla de entrada-cerebro dividido

NCache inicia un proceso separado para cada caché. Entonces, ese proceso de caché usa por defecto, 7800 a 7900 puerto. Aunque es configurable. Por lo tanto, puede estar utilizando un puerto diferente, en cuyo caso debe bloquearlos si desea simular esto. Y el puerto 8250 es el puerto de administración.

ámbito de configuración

Scope está diciendo bloque para 82, 102, 122. Entonces, le digo a este, bloquee el acceso de estos tres cuadros, eso es básicamente lo que está diciendo.

Entonces, tengo este puerto. Voy a decir habilitar regla y tengo el mismo puerto para una regla de salida. Es un... Entonces, está bloqueando la salida. Y, ahora voy a ir a la 117 y bloquear eso también. Iré a la 117. Nuevamente, tengo una entrada justo aquí. Lo mismo aqui. Conexión de bloque, puertos, 78 79, alcance, todas estas tres cajas. Bueno. Entonces, voy a decir habilitar la regla. Eso está habilitado. Voy a ir al otro. Diré habilitar la regla aquí.

habilitar-firewall-regla

Bien, ahora lo que he hecho, he activado el firewall en todos estos.

Formación de dos subgrupos

Entonces, ahora la división comenzará a suceder. Aunque no va a suceder de inmediato y puedo ver que primero voy a preguntarle a 82 cuál es este, ¿cuántos servidores tiene en el caché? ¡Dice bien! Tengo 82, 102, 122, 97, 117. Entonces, todavía tiene los cinco porque la división aún no ha ocurrido. Todavía está pasando por los reintentos y todo lo demás. Le voy a preguntar al otro, cuantos servidores tienes? Todavía tiene uno, dos, tres, cuatro, cinco. Por lo tanto, aún no ha ocurrido ninguna división porque todavía habrá reintentos y tiempos de espera. Pero, la división va a suceder pronto.

Voy a venir aquí y ver si está empezando a ver algunas paradas. Entonces, estoy hablando con 97 aquí, 97 es el lado del clúster de dos nodos.

split-comenzó-ocurriendo-en-97

Entonces, 97 me dice que solo está viendo... Entonces, no está viendo 102, 182, 82 dice que están detenidos, pero 97 y 117 están funcionando bien. ¡Okey! Veamos qué muestra el otro lado. El otro lado de la división que era este otro lado. Entonces, estaba hablando con el 97, ahora voy a hablar con el 82, como pueden ver, este es el 82, justo aquí está el 82. Dirección IP... ¡está diciendo que está bien! Diciendo 102, 122. Entonces, está diciendo que 122 está parcialmente conectado y 82 está completamente conectado.

split-comenzó-ocurriendo-en-82

Todavía está pasando por esa recuperación. Todavía está pasando por esta fase de reintentos en la que 122 no puede hablar con algunos de los otros nodos, pero seguirá adelante y lo que sucederá es que les mostraré rápidamente...

Entonces, aquí hay una característica que les conté sobre eso en el clúster, si hay un nodo parcialmente conectado, elimina ese nodo parcialmente conectado o parcialmente conectado del clúster para crear un clúster saludable. Entonces, eso es lo que está sucediendo en este momento: está eliminando ese otro clúster, ese otro nodo que es un nodo parcialmente conectado. Ahora, vengamos aquí de nuevo y veamos qué dice la línea de comando. Estoy hablando con 82 que es, como dije, ese es el clúster de tres nodos. Entonces, debería… a ver cuántos tiene. Ups aquí mismo, está diciendo 82 tiene uno, dos, tres, cuatro. Entonces, tiene cuatro. Todavía no tiene cinco. tiene cuatro Todavía está pasando por... va a eliminar a la fuerza los nodos tal como están y ahora voy a ir al 97 que está justo aquí y diré, ¿cuántos servidores tiene? Y, 97 solo tiene dos.

Entonces, 97 ya ha establecido el hecho de que no puede ver a los otros tres. Entonces, está bien, soy el único grupo aquí. No sabe que hay una división porque, como dije, solo la división, NCache solo sabe acerca de una división cuando se restaura esta conexión. Entonces, en este momento solo piensa que los otros nodos han muerto. Entonces, y dice bien, voy a continuar conmigo mismo con estos dos nodos. Y, déjame ir al otro aquí. A ver que tiene. ¡Ah, okey! Ahora también le quedan tres. Entonces, ha pasado y también ha hecho esto. Ha eliminado el nodo parcialmente desconectado para llegar ahora a un clúster en buen estado. Pero, es un grupo de solo tres nodos, ¿verdad?

división-ocurrida-en-ambos-servidores

Entonces, hablé con el servidor .82 aquí, que está justo aquí. Le pregunté cuántos servidores tiene en su caché, dice solo tres. Le pregunté a 97 cuántos servidores tiene en su caché, dice que solo dos.

¡Okey! Entonces, ha ocurrido una división. Como parte de la división, verá que hasta ahora la aplicación no ha lanzado ninguna excepción. Eso significa que la división se ha producido sin pérdida de datos. Esto probablemente podría deberse a que la aplicación no se ha encontrado, pero en algunos casos encontrará algunas excepciones.

Detección y recuperación de cerebro dividido al restaurar la red

¡Okey! Ahora, el siguiente paso que voy a dar es seguir adelante y patear el cerebro dividido. Entonces, ahora quiero restaurar la conexión para que se detecte el cerebro dividido y se inicie una recuperación. Pero, antes de hacer eso, les mostraré que en la configuración de mi caché, si voy a la configuración del clúster, que es el primer tema aquí, si voy hasta el final, ya he habilitado la recuperación automática para cerebro dividido.

auto-recuperación-split-brain

Entonces, si habilita la recuperación automática, eso significa NCache se recuperará automáticamente de un cerebro dividido una vez que detecte el cerebro dividido. Y, como mencioné, detecta el cerebro dividido cuando se restablece la conexión.

Entonces, regresemos ahora a 97 y esto y apaguemos este firewall. Y, voy a hacer en 97 primero. Voy a venir aquí y diré, deshabilite esta regla y vendré aquí y diré deshabilite esta regla.

desactivar-firewall-97

¡Okey! He hecho eso ahora voy a venir aquí a 117 y diré que deshabilitemos la regla aquí también. Deshabilitar la regla. Deshabilitar la regla. ¡Okey! Ahora he deshabilitado las reglas. Entonces, este firewall está desactivado, lo que significa que ahora pueden verse, o muy pronto, podrán verse entre sí. No va a suceder instantáneamente, pero podrán verse. Y, como puedes ver…

Entonces, voy a venir aquí de nuevo y le diré que me muestre su caché. Estoy de nuevo, mantendré esto frente a mí y diré que estoy hablando con 82 en este momento y digo muéstrame tus cachés, 82 dice, tengo 82, 102, 122. Entonces, entonces Hasta ahora todavía tiene tres cachés. No es ver a los otros dos. Voy a ir al otro y voy a decir muéstrame tus cachés. Está diciendo 97 y 117. Hasta ahora, la recuperación del cerebro dividido no se ha activado, pero lo hará. Lo hará porque toma un poco de tiempo para que ocurran los reintentos. Como puede ver aquí, ya estoy viendo uno dos tres cuatro cinco servidores. Y aquí uno dos tres cuatro cinco servidores.

split-brain-recovery-exitoso-en-ncache-gerente

Pero, voy a volver a depender de mi buena y antigua herramienta PowerShell de línea de comandos para que me lo diga. Haré que llamen a los cachés. Hablaré con 82 y le diré que me muestre cuántos servidores tiene. Todavía tiene uno dos tres. Y digo, muéstrame cuántos servidores tienes aquí. Todavía tiene uno dos. Entonces, de nuevo, uno dos y uno dos tres. Entonces, no ha habido conexión. Entonces, el cerebro dividido aún no se ha recuperado. Y es por eso que todavía va a estar parcialmente conectado, parcialmente conectado, y los clientes continúan trabajando.

¡Okey! déjame ir de nuevo. Hagamos otro. Todavía no está hecho. ¡Okey! Ven aquí. 97.. ¡Vamos! ¡Okey! Ahora, está empezando a ver el otro nodo. 82, 102, 122 y también 97 aquí. Pero, todavía es parcial. Necesita ver dos de estos y deberías ver tanto la partición como la réplica y es por eso que probablemente no pueda hablar con 97 todavía porque... ¡Bien! Ahora, 82, 102, 122, 97, nuevamente se restauran cinco nodos aquí. Los cinco.

5-servidores-restaurados-powershell-82-port

Déjame ir a este. Éste. De alguna manera... ¡Vamos! Lo cambiaré aquí. Entonces, en lugar de 82 diré 97 aquí. Ahora haz eso. Veré que 97 también me muestra cinco nodos, uno dos tres cuatro cinco. Bueno. Entonces, los cinco nodos se vuelven a conectar.

5-servidores-restaurados-powershell-97-port

Voy a venir aquí. Permítanme reiniciar este monitor. Vendré aquí de nuevo. Este caché, diré estadísticas. Veo que los cinco están trabajando y los clientes están hablando con ellos. Entonces, nuevamente, el hecho de que el cliente esté hablando con los cinco significa que las conexiones del cliente también se restauran automáticamente. Y el monitor también me va a mostrar los cinco aquí. Entonces, como puede ver, completamente conectados, los cinco nodos.

ventana-de-estadísticas-que-muestra-los-5-conectados-para-97

¡Okey! Ahora permítanme venir aquí al otro. ¿Fui al otro? Éste. ¡Okey! Diré estadísticas bien. Los cinco están. Estoy hablando con los cinco aquí, como pueden ver, la actividad está ocurriendo en todos ellos y voy a decir monitorear que los cinco estén ocurriendo aquí.

ventana-de-estadísticas-que-muestra-los-5-conectados-para-82

Conclusión

Entonces, pasamos de tener un clúster en buen estado a tener una división y volver a tener un clúster en buen estado. Y podemos ver que, aquí también, tenemos un clúster de cinco nodos. Entonces, ese es más o menos el final de esta demostración. Por favor, adelante y juega con NCache y vea que con la recuperación de cerebro dividido, tiene esta capacidad adicional de alta disponibilidad.

¿Qué hacer a continuación?

 
© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.