Clustering de cache dynamique pour une haute disponibilité

NCache dispose d'un clustering de cache dynamique à réparation automatique basé sur une architecture peer-to-peer pour fournir une disponibilité de 100 %. Il s'agit d'un cluster basé sur TCP où il n'y a pas de nœuds maître/esclave et à la place, chaque serveur du cluster est un pair. Cela vous permet d'ajouter ou de supprimer n'importe quel serveur de cache lors de l'exécution du cluster sans arrêter ni le cache ni votre application.

Architecture pair à pair (auto-guérison)

NCache cluster a une architecture peer-to-peer. Cela signifie qu'il n'y a pas de nœuds maître/esclave et que chaque serveur est pair. Il existe un nœud Coordinateur de cluster qui est le nœud le plus ancien du cluster. Si le nœud du coordinateur de cluster tombe en panne, le plus ancien suivant devient automatiquement le coordinateur.

Le coordinateur de cluster gère toutes les opérations liées au cluster, y compris l'appartenance au cluster lorsque des nœuds sont ajoutés ou supprimés, la carte de distribution pour Cache partitionné / Cache de Partition-Réplica topologie et autres informations de configuration du cache. Le coordinateur de cluster gère également l'intégrité du cluster et supprime de force tous les serveurs de cache qui sont partiellement connectés à tous les autres serveurs du cluster.

Cluster de cache dynamique

Clustering Dynamique

NCache possède de architecture de clustering dynamique. Cela signifie que vous pouvez ajouter ou supprimez tout serveur de cache du cluster sans arrêter le cache ou les applications. Chaque fois que vous ajoutez ou supprimez un serveur de cache, l'appartenance au cluster est mise à jour immédiatement lors de l'exécution et propagée à tous les serveurs du cluster ainsi qu'à tous les clients connectés au cluster. Cette mise à jour et cette propagation d'exécution permettent NCache être toujours opérationnel même lorsque de tels changements sont apportés.

Le clustering dynamique vous permet d'effectuer les opérations suivantes :

  • Ajouter/supprimer des serveurs de cache lors de l'exécution : sans arrêter le cache ou votre application
  • Appartenance au cluster : est mis à jour au moment de l'exécution et propagé à tous les serveurs du cluster et à tous les clients connectés au cluster.

Connexions client dynamiques

NCache vous permet également d'ajouter ou de supprimer clients en cache lors de l'exécution sans arrêter le cache ou les autres clients. Lorsque vous ajoutez un client, ce client a juste besoin de connaître n'importe quel serveur de cache du cluster auquel se connecter. Une fois qu'il se connecte à ce serveur, il reçoit des informations sur l'appartenance au cluster et la topologie de mise en cache en fonction desquelles il décide à quels autres serveurs se connecter.

  • Ajouter/supprimer des clients lors de l'exécution : sans arrêter le cache ou votre application.
  • Cache partitionné / Cache partition-réplica : le client se connecte à toutes les partitions de tous les serveurs de cache (pas aux répliques car les partitions communiquent avec leurs répliques). Cela permet au client d'aller directement là où se trouvent les données pour les lectures et les écritures. Et, si un nouveau serveur est ajouté au cluster, le client reçoit des informations d'appartenance au cluster mises à jour, puis se connecte également à ce serveur de cache nouvellement ajouté.
  • Cache répliqué : en cas de Cache répliqué, le client se connecte simplement à un serveur de cache dans le cluster, mais en équilibrant la charge pour garantir que tous les serveurs de cache ont le même nombre de clients. Le client obtient les informations d'équilibrage de charge de ce serveur cache et sur cette base, si nécessaire, il se reconnecte au serveur cache approprié. Le client se connecte à un seul serveur de cache car chaque serveur dispose de l'intégralité du cache, de sorte que toutes les lectures et écritures sont possibles sur place.
  • Cache en miroir : en cas de Cache en miroir, le client se connecte uniquement au nœud actif de ce cluster à 2 nœuds. Si le client se connecte au nœud passif, le nœud passif informe le client du nœud actif et le client se reconnecte automatiquement au nœud actif. Si le nœud actif tombe en panne et que le nœud passif devient actif, tous les clients se connectent automatiquement au nouveau nœud actif.
Connexions client dynamiques

Configuration dynamique

NCache fournit également une configuration dynamique du cache et des clients. Le but est de vous permettre d'apporter des modifications ultérieurement lorsque le cache est en cours d'exécution sans arrêter le cache ou votre application.

  • Propager à tous les serveurs et clients lors de l'exécution : cela inclut toute la configuration et ses modifications ainsi que la carte de distribution.
  • Configuration du cache : lorsqu'une configuration de cache est créée via des outils d'administration, ces informations de configuration sont copiées sur tous les serveurs de cache connus à ce moment-là. De plus, tout nouveau serveur ajouté au moment de l'exécution reçoit l'intégralité de cette configuration de cache et la copie sur son disque local.
  • Modifications de la configuration de l'application à chaud : vous pouvez modifier une partie de la configuration du cache lors de l'exécution via un "Application à chaud" caractéristique de NCache. Lorsque vous faites cela, les informations de configuration mises à jour sont propagées à tous les serveurs de cache lors de l'exécution et enregistrées sur leurs disques. Une partie de ces informations est également transmise à tous les clients en fonction de leurs besoins.
  • Carte de distribution (cache partitionné/partition-réplica) : celui-ci est créé au démarrage du cache et est ensuite copié sur tous les serveurs de cache et clients de cache. Cette carte de distribution contient des informations sur les compartiments (sur un total de 1000 XNUMX compartiments dans le cache en cluster) qui se trouvent sur quelle partition.

Basculement de connexion au sein du cluster

Tous les serveurs de cache du cluster sont connectés les uns aux autres via TCP. De plus, chaque serveur de cache est connecté à tous les autres serveurs de cache du cluster, y compris tous les nouveaux serveurs ajoutés au moment de l'exécution. NCache fournit différentes manières de s'assurer que toutes les connexions au sein du cluster sont maintenues actives malgré l'interruption de la connexion. Une rupture de connexion se produit généralement en raison d'un problème de réseau dû à un routeur ou à un pare-feu ou à un problème avec la carte réseau ou le pilote réseau.

  • Nouvelles tentatives de connexion : si la connexion entre deux serveurs de cache est interrompue, NCache Le serveur effectue automatiquement plusieurs tentatives pour établir cette connexion. Ces tentatives sont effectuées jusqu'à ce que la période de "timeout" soit épuisée. Dans la plupart des situations, cela rétablit la connexion.
  • Battement de coeur Keep-Alive : NCache a également une fonctionnalité pour que chaque serveur de cache continue d'envoyer de petits paquets de données sous forme de battement de cœur à tous les autres serveurs. Cela garantit qu'en cas de problème de rupture de socket réseau, les serveurs de cache le sauront et le résoudront par de nouvelles tentatives.
  • Serveurs partiellement connectés : malgré les tentatives, il arrive qu'une connexion ne soit pas restaurée dans le délai imparti et qu'un serveur de cache suppose qu'un ou plusieurs des autres serveurs de cache sont en panne. Ainsi, il continue de fonctionner sans eux. Mais, en réalité, les autres serveurs ne sont pas en panne et sont en fait vus par d'autres serveurs du cluster. C'est ce qu'on appelle des serveurs partiellement connectés. Lorsque cela se produit, le coordinateur de cluster en prend note et supprime de force le serveur "partiellement connecté" du cluster. Ce faisant, le cluster redevient sain. De plus, le serveur supprimé peut rejoindre le cluster via une intervention manuelle.

Basculement de connexion avec les clients

Tous les clients de cache sont connectés à un ou plusieurs serveurs de cache du cluster via TCP en fonction des topologies de mise en cache. Pour le cache partitionné/partition-réplica, chaque client est connecté à tous les serveurs de cache. Pour le cache répliqué, chaque client est connecté à un seul des serveurs de cache, généralement via un algorithme d'équilibrage de charge utilisé par les serveurs de cache. Et, pour Mirrored Cache, tous les clients sont connectés uniquement au nœud actif et ne se connectent au nœud passif que lorsque le nœud actif tombe en panne et que le nœud passif devient un nœud actif.

  • Nouvelles tentatives de connexion : si une connexion entre un client et les serveurs de cache se rompt, NCache le client fait automatiquement plusieurs tentatives de connexion pour établir cette connexion. Ces tentatives sont effectuées jusqu'à ce que la période de "timeout" soit épuisée. Dans la plupart des situations, cela rétablit la connexion sans même que l'application cliente s'en aperçoive. Si une connexion ne peut pas être établie, une exception est levée vers l'application cliente afin qu'elle puisse la gérer.
  • Battement de coeur Keep-Alive : NCache a également une fonction pour que chaque client continue d'envoyer de petits paquets de données au fur et à mesure battement de coeur à tous les serveurs de cache auxquels il est connecté. Cela garantit que s'il y a un problème de rupture de socket réseau, le client le saura et le résoudra par de nouvelles tentatives de connexion.
  • Clients partiellement connectés (cache partitionné/réplica de partition) : malgré les tentatives, il arrive qu'une connexion ne soit pas restaurée dans le délai imparti et qu'un client de cache suppose qu'il est incapable d'atteindre un ou plusieurs des autres serveurs de cache même s'ils ne sont pas en panne. Ainsi, dans le cas d'un cache partitionné / partition-réplica, il interagit avec d'autres serveurs pour lire ou écrire toutes les données même si sa carte de distribution lui indique que le serveur auquel il ne peut pas parler possède les données. Dans ce cas, l'autre serveur de cache sert d'intermédiaire pour mener à bien l'opération.
  • Déconnexion avec le serveur (cache répliqué / miroir) : en cas de cache répliqué, le client n'est connecté qu'à un seul serveur et si cette connexion est interrompue, le client se connecte automatiquement à l'un des autres serveurs de cache. Dans le cas d'un cache en miroir, si le client ne parvient pas à se connecter au nœud actif, il suppose qu'il est en panne et tente de se connecter au nœud passif.

Que faire ensuite?

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.