Agrupación de caché dinámica para alta disponibilidad

NCache tiene un agrupamiento de caché dinámico de recuperación automática basado en una arquitectura punto a punto para proporcionar un tiempo de actividad del 100 %. Este es un clúster basado en TCP donde no hay nodos maestro/esclavo y, en cambio, cada servidor en el clúster es un par. Esto le permite agregar o eliminar cualquier servidor de caché en tiempo de ejecución del clúster sin detener ni el caché ni su aplicación.

Arquitectura punto a punto (autocuración)

NCache El clúster tiene una arquitectura peer-to-peer. Esto significa que no hay nodos Maestro/Esclavo y cada servidor es par. Hay un nodo Coordinador de clúster que es el nodo más antiguo del clúster. Si el nodo del coordinador de clúster deja de funcionar, el siguiente más antiguo se convierte automáticamente en el coordinador.

El Coordinador de clúster administra todas las operaciones relacionadas con el clúster, incluida la membresía del clúster cuando se agregan o eliminan nodos, el mapa de distribución para Caché con particiones / Caché de réplica de partición topología y otra información de configuración de caché. El Coordinador de clúster también administró el estado del clúster y elimina a la fuerza cualquier servidor de caché que esté parcialmente conectado a todos los demás servidores del clúster.

Clúster de caché dinámica

Agrupación dinámica

NCache tiene un arquitectura de agrupamiento dinámico. Esto significa que puedes add o elimine cualquier servidor de caché del clúster sin detener el caché o las aplicaciones. Cada vez que agrega o elimina un servidor de caché, la Membresía del clúster se actualiza inmediatamente en tiempo de ejecución y se propaga a todos los servidores del clúster, así como a todos los clientes conectados al clúster. Esta actualización y propagación en tiempo de ejecución permite NCache para estar siempre en funcionamiento, incluso cuando se realizan dichos cambios.

El agrupamiento dinámico le permite hacer lo siguiente:

  • Agregar/eliminar servidores de caché en tiempo de ejecución: sin detener el caché o su aplicación
  • Membresía del clúster: se actualiza en tiempo de ejecución y se propaga a todos los servidores del clúster y a todos los clientes conectados al clúster.

Conexiones dinámicas de clientes

NCache también le permite agregar o quitar clientes de caché en tiempo de ejecución sin detener el caché u otros clientes. Cuando agrega un cliente, este cliente solo necesita saber acerca de cualquier servidor de caché en el clúster para conectarse. Una vez que se conecta a ese servidor, recibe la membresía del clúster y la información de topología de almacenamiento en caché en función de la cual decide a qué otros servidores conectarse.

  • Agregar/eliminar clientes en tiempo de ejecución: sin detener el caché o su aplicación.
  • Caché con particiones / Caché de réplica de partición: el cliente se conecta a todas las particiones en todos los servidores de caché (no a las réplicas porque las particiones hablan con sus réplicas). Esto permite que el cliente vaya directamente a donde están los datos para lecturas y escrituras. Y, si se agrega un nuevo servidor al clúster, el cliente recibe información actualizada sobre la membresía del clúster y luego también se conecta a este servidor de caché recién agregado.
  • Caché replicado: en caso de Caché replicado, el cliente simplemente se conecta a un servidor de caché en el clúster, pero con una carga equilibrada para garantizar que todos los servidores de caché tengan la misma cantidad de clientes. El cliente obtiene la información de equilibrio de carga de este servidor de caché y, en función de eso, si es necesario, se vuelve a conectar al servidor de caché adecuado. El cliente se conecta a un solo servidor de caché porque cada servidor tiene el caché completo, por lo que todas las lecturas y escrituras son posibles allí mismo.
  • Caché reflejada: en caso de Caché reflejada, el cliente solo se conecta solo al nodo activo en este clúster de 2 nodos. Si el cliente se conecta al nodo pasivo, el nodo pasivo le informa al cliente sobre el nodo activo y el cliente se vuelve a conectar automáticamente al nodo activo. Si el nodo activo deja de funcionar y el nodo pasivo se activa, todos los clientes se conectan automáticamente al nuevo nodo activo.
Conexiones dinámicas de clientes

Configuración dinámica

NCache también proporciona configuración dinámica de la memoria caché y los clientes. El objetivo es permitirle realizar cambios más adelante cuando la memoria caché se esté ejecutando sin detener la memoria caché o su aplicación.

  • Propagación a todos los servidores y clientes en tiempo de ejecución: esto incluye toda la configuración y sus cambios y también el Mapa de Distribución.
  • Configuración de caché: cuando se crea una configuración de caché a través de las herramientas de administración, esta información de configuración se copia en todos los servidores de caché conocidos en ese momento. Y, cualquier servidor nuevo que se agrega en tiempo de ejecución recibe esta configuración de caché completa y la copia en su disco local.
  • Cambios de configuración de aplicación en caliente: puede cambiar parte de la configuración de caché en tiempo de ejecución a través de un "caliente aplicar" característica de NCache. Cuando lo hace, la información de configuración actualizada se propaga a todos los servidores de caché en tiempo de ejecución y se guarda en sus discos. También se envía a todos los clientes una parte de esta información que es relevante para sus necesidades.
  • Mapa de distribución (caché particionado/partición-réplica): esto se crea cuando se inicia el caché y luego se copia a todos los servidores de caché y clientes de caché. Este mapa de distribución contiene información sobre qué depósitos (de un total de 1000 depósitos en la memoria caché en clúster) se encuentran en qué partición.

Conmutación por error de conexión dentro del clúster

Todos los servidores de caché del clúster están conectados entre sí a través de TCP. Y, cada servidor de caché está conectado a todos los demás servidores de caché en el clúster, incluidos los nuevos servidores agregados en tiempo de ejecución. NCache proporciona varias formas de garantizar que las conexiones dentro del clúster se mantengan activas a pesar de la interrupción de la conexión. La interrupción de la conexión generalmente ocurre debido a una falla en la red debido a un enrutador o firewall o un problema con la tarjeta de red o el controlador de red.

  • Reintentos de conexión: si se interrumpe la conexión entre dos servidores de caché, NCache El servidor realiza automáticamente varios reintentos para establecer esta conexión. Estos reintentos se realizan hasta que se agota el período de "tiempo de espera". En la mayoría de las situaciones, esto restablece la conexión.
  • Latido del corazón de Keep-Alive: NCache también tiene una función para que cada servidor de caché siga enviando algunos paquetes de datos pequeños como latido del corazón a todos los demás servidores. Esto garantiza que si hay un problema de interrupción del socket de red, los servidores de caché lo sabrán y lo solucionarán mediante reintentos.
  • Servidores parcialmente conectados: a pesar de los reintentos, hay momentos en que una conexión no se restaura dentro del período de tiempo de espera y un servidor de caché asume que uno o más de los otros servidores de caché están inactivos. Por lo tanto, sigue funcionando sin ellos. Pero, en realidad, los otros servidores no están caídos y, de hecho, son vistos por otros servidores en el clúster. Esto se llama servidores parcialmente conectados. Cuando esto sucede, el coordinador del clúster toma nota de esto y elimina a la fuerza el servidor "parcialmente conectado" del clúster. Al hacer esto, el clúster vuelve a estar en buen estado. Y el servidor que se elimina puede volver a unirse al clúster mediante una intervención manual.

Conmutación por error de conexión con clientes

Todos los clientes de caché están conectados a uno o más servidores de caché en el clúster a través de TCP, según las topologías de almacenamiento en caché. Para Partitioned/Partition-Replica Cache, cada cliente está conectado a todos los servidores de caché. Para la caché replicada, cada cliente está conectado a solo uno de los servidores de caché, generalmente a través de un algoritmo de equilibrio de carga utilizado por los servidores de caché. Y, para Mirrored Cache, todos los clientes se conectan solo al Nodo activo y solo se conectan al Nodo pasivo cuando el Nodo activo deja de funcionar y el Nodo pasivo se convierte en Nodo activo.

  • Reintentos de conexión: si se interrumpe una conexión entre un cliente y los servidores de caché, NCache el cliente automáticamente hace múltiples reintentos de conexión para establecer esta conexión. Estos reintentos se realizan hasta que se agota el período de "tiempo de espera". En la mayoría de las situaciones, esto restablece la conexión sin que la aplicación cliente lo note. Si no se puede establecer una conexión, se lanza una excepción a la aplicación cliente para que pueda manejarla.
  • Latido del corazón de Keep-Alive: NCache también tiene una función para que cada cliente siga enviando algunos paquetes de datos pequeños como latido del corazón a todos los servidores de caché a los que está conectado. Esto garantiza que si hay un problema de interrupción del socket de red, el cliente lo sabrá y lo solucionará mediante reintentos de conexión.
  • Clientes parcialmente conectados (particionados/caché de réplica de partición): a pesar de los reintentos, hay momentos en que una conexión no se restaura dentro del período de tiempo de espera y un cliente de caché asume que no puede comunicarse con uno o más de los otros servidores de caché, aunque es posible que no estén caídos. Entonces, en el caso de Partitioned/Partition-Replica Cache, interactúa con otros servidores para leer o escribir todos los datos, aunque su Mapa de distribución le dice que el servidor con el que no puede hablar tiene los datos. En este caso, el otro servidor de caché actúa como intermediario para realizar con éxito la operación.
  • Desconexión con el servidor (caché replicado/duplicado): en el caso de la caché replicada, el cliente solo está conectado con un servidor y si esta conexión se interrumpe, el cliente se conecta automáticamente a uno de los otros servidores de caché. En el caso de Mirrored Cache, si el cliente no puede conectarse al nodo activo, asume que está inactivo e intenta conectarse al nodo pasivo.

¿Qué hacer a continuación?

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