Les pics de charge, les pannes, les pannes du système sont très susceptibles de faire partie de votre cluster de cache et ce n'est pas quelque chose dont il faut s'inquiéter. Cependant, n'avoir aucune solution de contournement à de telles situations l'est définitivement! La résilience aux pannes contre ces facteurs de risque est la principale exigence de votre cluster de mise en cache afin que la récupération à partir de scénarios de panne soit toujours pratique. Dans certaines situations, la perte de données peut être négligeable et peut être traitée facilement, mais dans certains cas où des données critiques sont impliquées, la protection et la disponibilité des données ne peuvent pas être considérées comme une exigence secondaire.
NCache Ne perd PAS vos données !
NCache, étant un magasin de mise en cache de données distribuées en mémoire, fournit une architecture dans laquelle la haute disponibilité des données est assurée en cas de pics de charge ou de temps d'arrêt. Vos données restent disponibles à 100 % même dans des situations désastreuses comme un nœud quittant définitivement le cluster. NCache est conçu pour gérer l'ajout ou la suppression d'un nœud de serveur à l'exécution.
Vous pouvez également modifier les configurations de cache lors de l'exécution avec les fonctionnalités applicables à chaud. Avec l'architecture peer to peer, NCache vous évite le plus gros problème du « point de défaillance unique ». La prise en charge du basculement n'est pas seulement fournie dans le cluster de cache, mais également avec les clients connectés au cache. Cela fait NCache très dynamique et extrêmement sûr de ne réclamer aucune perte de données. Regardons la figure ci-dessous pour comprendre NCachela disponibilité.
L'étape 1 montre un cluster connecté où les clients sont connectés avec le NCache cluster ayant une architecture pair à pair.
La figure 2 montre un nœud quittant le cluster de cache en raison d'un sinistre.
La figure ci-dessous montre que le cluster de cache a équilibré les données entre les nœuds restants et que les clients restent connectés au cluster de cache.
Topologies de mise en cache
NCache fournit différentes topologies pour le stockage des données afin que vous puissiez stocker les données selon vos propres besoins. Regardez les topologies ci-dessous :
- Topologie en miroir : Comme son nom l'indique, miroir topologie signifie un cluster avec deux nœuds, l'un étant le nœud actif en miroir avec le nœud passif.
- Topologie répliquée : In répliquées topologie, chaque nœud a les mêmes données répliquées dessus.
- Cache partitionné: Dans partitionné topologie, chaque nœud de serveur a une partition et les données sont réparties équitablement entre le nœud et sa partition.
- Partition du cache de réplique : Partition de réplique La topologie est la topologie la plus rapide car elle conserve la réplique de chaque partition. Chaque partition est répliquée sur un serveur différent et les répliques sont passives, ce qui signifie que les clients ne peuvent pas s'y connecter.
Parlons maintenant de la disponibilité des données par rapport aux topologies de mise en cache. Chaque topologie mentionnée a des caractéristiques différentes. Topologie répliquée s'assure que les données sont répliquées sur tous les nœuds, gardant ainsi les données 100 % disponibles. Dans Topologie partitionnée, si un seul nœud est en panne, une partie des données est perdue. Cependant, dans Réplique partitionnée topologie, comme chaque partition a une réplique, si un nœud est perdu, les données sont redisrendu hommage parmi les nœuds restants. Cela rend la topologie POR la plus efficace en ce qui concerne la disponibilité des données. La topologie de réplique partitionnée asynchrone a une réplication de données en arrière-plan qui peut entraîner une perte de données, cependant, avec la topologie POR synchrone, aucune perte de données ne se produit car la réplication se produit via l'application cliente.
Topologies de mise en cache Regroupement dynamique d'auto-guérison NCache Architecture
Architecture pair à pair dans NCache
L'architecture peer to peer signifie qu'il n'y a pas de concept de nœud maître ou esclave dans NCache. Un cluster est formé par un ensemble bien défini de serveurs et chaque serveur est connecté à tous les autres serveurs du cluster de cache. Il existe un nœud coordinateur qui est responsable de la gestion de l'ensemble du cluster. Un nœud coordinateur est le nœud le plus ancien par rapport aux nœuds rejoignant le cluster. Si un nœud coordinateur quitte le cluster, le nœud le plus ancien suivant devient le nœud coordinateur. Le nœud coordinateur partage également toutes les informations de la distribution des données sur les autres nœuds afin que le nœud coordinateur suivant sache déjà tout sur la distribution des données.
La distribution des données s'effectue sur la base de buckets. Un compartiment unique est l'unité minimale de distribution de données. Tous les compartiments sont répartis uniformément entre les nœuds du cluster de cache.
Par exemple, un cluster de cache avec deux nœuds et 1000 500 compartiments de données conserve XNUMX compartiments de données sur chaque nœud. NCache distribue les données sur la base d'une carte de distribution. La carte de distribution mappe les compartiments avec les nœuds sur lesquels résident les compartiments.
Le processus de transfert de données d'un nœud à un autre nœud est appelé transfert d'état. Il transfère le seau de données par seau du nœud existant (nœud source) vers le nouveau nœud (attribué). Le temps pendant lequel le transfert d'état a lieu, toutes les opérations échouant/liées à un bucket donné sont dirigées vers le nœud source jusqu'à ce que l'ensemble du processus de transfert d'état ait eu lieu. Une fois le processus de transfert d'état terminé, tous les nœuds sont informés que le transfert d'état est terminé.
Découverte d'exécution dans le cluster et les clients
NCache excelle dans la disponibilité des données pour ses fonctionnalités dynamiques. Si un nœud rejoint le cluster de cache, tous les nœuds serveur et client reçoivent ces informations au moment de l'exécution, ce qui permet la distribution des données. Le nœud coordinateur s'assure qu'un nouveau serveur a rejoint le cluster de cache et il ajoute le nouveau nœud de serveur dans la liste des nœuds du cluster de cache. Il informe également tous les autres nœuds de serveur de l'entrée d'un nouveau nœud de serveur dans le cluster de cache. Après cela, le nouveau nœud de serveur acquiert une connexion TCP avec tous les autres nœuds de serveur. Par conséquent, le nouveau serveur n'a aucune information sur les nœuds de serveur de cache existants jusqu'à ce qu'il ait rejoint le cluster de cache.
De même, les clients de cache sont également découverts lors de l'exécution. Un client lors de la connexion au cluster de cache n'a pas besoin de connaître l'ensemble du cluster de cache et tous les nœuds de serveur. Il n'a besoin que des informations d'un seul serveur de cache en cours d'exécution. Il utilise cette connexion pour voir à quels serveurs de cache se connecter. Voici les informations vitales que le client reçoit après l'établissement de la connexion :
- Carte de distribution des données: La carte qui contient les informations sur les données résidant sur quel nœud de serveur afin qu'elles soient facilement accessibles.
- Topologie de mise en cache : Les informations sur la topologie du cache pour déterminer à quel serveur de cache se connecter.
- Informations sur l'adhésion au cluster: Les informations sur les membres du cluster telles qu'un nouveau nœud entrant dans le cluster ou un nœud existant quittant un cluster.
- Informations concernant compression ou cryptage.
- Informations de sérialisation : Binaire ou JSON.
Clustering Dynamique Récupération automatique du cerveau divisé Mode de maintenance
Prise en charge du basculement de connexion
NCache cluster est un cluster dynamique d'autoréparation et traite tout basculement au moment de l'exécution. Deux types de prise en charge du basculement sont fournis par NCache:
- Prise en charge du basculement au sein du cluster: Si un serveur de cache quitte le cluster à tout moment, le cluster de cache se répare très efficacement de la perte d'un serveur de cache. Pour l'expliquer plus en détail, cela signifie que le cluster de cache divise les compartiments de données entre les nœuds de serveur de cache restants et met à jour tous les nœuds de serveur de cache à propos de la nouvelle distribution.
- Prise en charge du basculement dans le client: Semblables aux serveurs de cache, les clients de cache s'ajustent également en fonction des autres serveurs de cache existants. Si un client est connecté à un serveur de cache et que la connexion est perdue en raison de l'indisponibilité du nœud serveur, tous les clients qui y sont connectés se déplacent automatiquement vers d'autres nœuds existants.
Mode de maintenance
Le mode de maintenance est une autre fonctionnalité pilotée par l'utilisateur fournie par NCache. Comme indiqué précédemment, le transfert d'état a lieu sur chaque nœud quittant ou rejoignant le cluster. Dans les scénarios où un nœud de serveur quitte le cluster pour éviter le transfert d'état inutile, le mode de maintenance est pratique. Il vous permet d'arrêter un nœud pour maintenance et d'économiser à votre cluster le coût d'un processus de transfert d'état coûteux. Lorsqu'un nœud est en cours de maintenance, toutes les opérations sont servies à partir du nœud de réplique. Dès que le nœud rejoint le cluster, il synchronise l'état avec le nœud de réplique.
Conclusion
La disponibilité des données est le plus grand défi lorsqu'il s'agit de données de cache. NCache est riche en fonctionnalités haut de gamme pour faire face à la disponibilité des données à tout prix, offrant un contrôle immédiat des dommages dans des situations désastreuses. Pas seulement ça, NCache possède une architecture très évolutive qui offre non seulement une haute disponibilité, mais vous permet également de faire évoluer votre cluster de cache de manière linéaire. Donc, il est sûr de dire que NCache est le meilleur niveau de mise en cache dont votre architecture d'application a besoin.