Un cauchemar courant chez les développeurs et les architectes logiciels est la panne de leur seul serveur Web/source de données, ce qui entraîne la perte de milliers de clients connectés, d'applications et de données précieuses. À l'aide d'une couche de mise en cache distribuée et équilibrée en charge, telle que NCache vous pouvez rendre votre niveau d'application hautement évolutif et disponible. Avec l'augmentation de la charge de transaction, vous pouvez ajouter plus de serveurs. L'architecture distribuée garantit qu'il n'y a pas de point de défaillance unique.
NCache est en mémoire distribué magasin de données offrant des performances optimales pour vos applications. La NCache le groupe est autocicatrisation et dynamique. Il contient des nœuds qui équilibrent automatiquement la charge entre eux sans intervention de l'utilisateur à chaque mise à jour du cluster.
NCache Détails NCache Docs Réplique partitionnée
Ce blog vous donne un aperçu rapide de la façon dont NCache . évolutivité et performances tout en maintenant une disponibilité de 100 %. Pour la compréhension NCache architecture en détail, vous pouvez regarder cette vidéo :
Maintien de la haute disponibilité dans NCache Grappe
NCacheL'architecture distribuée et répliquée de garantit 100% Stabilité même si un nœud tombe en panne de manière inattendue. NCacheL'architecture peer-to-peer de et la découverte d'exécution des clusters et des clients sans intervention de l'utilisateur garantissent une telle haute disponibilité. En outre, NCache fournit une prise en charge intelligente du basculement, de sorte que le cluster reste toujours disponible pour tous les clients connectés.
Architecture pair à pair
NCache fournit clustering de cache dynamique avec une architecture pair à pair où il n'y a pas de point de défaillance unique. Un cluster de cache a des serveurs interconnectés et contient un coordinateur (nœud de serveur le plus élevé) qui gère les appartenances au cluster. Si le coordinateur tombe en panne, le rôle est transmis au serveur suivant le plus ancien du cluster. Il garantit l'absence de point de défaillance unique dans la gestion des membres du cluster.
Découverte d'exécution dans le cluster et les clients
Grappe:
Une fois qu'un serveur démarre, il doit connaître au moins un autre serveur dans le cluster. Le serveur contient une liste de plusieurs serveurs de cache et essaie de se connecter à n'importe lequel d'entre eux. Une fois qu'il se connecte à un serveur, il interroge ce serveur sur le coordinateur de cluster et demande au coordinateur de l'ajouter à la liste des membres du cluster.
Le coordinateur ajoute ce nouveau serveur au cluster lors de l'exécution et informe les autres serveurs connectés qu'un nouveau serveur a rejoint le cluster. Il informe également le nouveau serveur de tous les membres du cluster. Le nouveau serveur établit alors une connexion TCP avec tous les serveurs du cluster.
Client:
Une fois que le client se connecte à un serveur de cache, il reçoit les informations suivantes de ce serveur lors de l'exécution :
- Informations sur l'appartenance au cluster
- Mise en cache des informations de topologie
- Carte de distribution des données
Le client utilise ces informations pour déterminer à quels serveurs de cache se connecter et comment accéder au cache en fonction de la topologie de mise en cache.
Découverte d'exécution dans le cluster et les clients
In NCache, la découverte du cluster et du client pendant l'exécution s'effectue de la manière suivante :
Grappe:
Comme un cluster est un ensemble de nœuds, une fois qu'un serveur a démarré, il doit connaître au moins un autre serveur dans le cluster. Le serveur contient une liste de plusieurs serveurs de cache et essaie de se connecter à n'importe lequel d'entre eux. Une fois qu'il se connecte à un serveur, il interroge ce serveur sur le coordinateur de cluster et demande au nœud coordinateur de l'ajouter à la liste des membres du cluster.
Le coordinateur ajoute ce nouveau serveur au cluster lors de l'exécution et informe les autres serveurs connectés qu'un nouveau serveur a rejoint le cluster. Il met également à jour le nouveau serveur sur tous les membres du cluster. Le nouveau serveur établit alors un Connexion TCP avec tous les serveurs du cluster.
Client:
Une fois que le client se connecte à un serveur de cache, il reçoit les informations suivantes de ce serveur lors de l'exécution :
- Informations sur l'appartenance au cluster
- Mise en cache des informations de topologie
- Carte de distribution des données
Le client utilise ces informations pour déterminer à quels serveurs de cache se connecter et comment accéder au cache en fonction de la topologie de mise en cache.
Prise en charge du basculement
L' NCache cluster est autoréparateur, il fournit une prise en charge du basculement au sein du cluster et pour les clients si un serveur est ajouté ou supprimé au moment de l'exécution.
- Prise en charge du basculement de cluster : Le cluster se réorganise automatiquement en mettant à jour ses connexions aux autres serveurs à chaque mise à jour du cluster.
- Prise en charge du basculement client : Les clients se connectent automatiquement à un autre serveur du cluster en cas de déconnexion du serveur. De même, s'il y a ajout d'un serveur, les clients se mettent à jour et peuvent se connecter au nouveau serveur.
Pour plus de détails sur les fonctionnalités de haute disponibilité, rendez-vous sur notre blog Haute disponibilité promise avec NCache.
Topologies de mise en cache Clustering dynamique d'auto-guérison NCache Architecture
Mode de maintenance
NCache prend en charge le mode de maintenance pour son Partitionné de la réplique topologie. Bien que la topologie POR elle-même assure une haute disponibilité avec une réplique de chaque nœud. Cependant, si vous devez exécuter une mise à niveau ou effectuer une mise à jour de correctif sur le cache, vous devez arrêter chaque nœud de cluster un par un. Cependant, l'arrêt d'un nœud de cache déclenche une transfert d'état dans l'ensemble du cluster de cache, ce qui entraîne une utilisation excessive de ressources telles que le réseau et le processeur, ce qui a un impact considérable sur la disponibilité du cache.
La NCache Le mode de maintenance résout ce problème en vous donnant la possibilité d'arrêter un nœud pour la maintenance. Une fois qu'un nœud est arrêté, il informe le cluster d'arrêter tout transfert d'état pendant une période de temporisation spécifique. Lorsqu'un cluster subit une maintenance, la réplique de ce nœud agira en tant que nœud actif et servira les demandes de données du client. Une fois que le nœud lui-même rejoint le cluster, il demande des données à son nœud de réplique. Essentiellement, le mode de maintenance permet à votre cluster d'économiser le coût d'un processus de transfert d'état coûteux.
NCache Détails NCache Docs Mode de maintenance NCache Docs
Atteindre l'évolutivité d'exécution de NCache Grappe
Depuis que NCache stocke vos données tout en fournissant des fonctionnalités avancées telles que Messagerie Pub/Sub ainsi que exécution de requête, vous pouvez vous attendre à rencontrer des limites de mémoire ou de calcul si toutes vos transactions se trouvent sur un seul serveur. C'est pourquoi NCache fournit une mise à l'échelle linéaire transparente pour gérer l'augmentation des demandes/seconde et stocker plus de données.
NCache Web Manager rend la mise à l'échelle de votre environnement aussi simple que de cliquer sur des boutons, et le tour est joué, vous disposez d'un cluster dynamique avec des nœuds supplémentaires sans arrêter vos clients. Le GIF suivant montre à quel point il est simple de faire évoluer dynamiquement votre cluster dans NCache:
Opérations parallèles
NCache possède de cluster dynamique qui permet aux clients de recevoir les données requises en un seul saut, car les clients sont gérés efficacement au sein du cluster sans aucune intervention de l'utilisateur. De plus, les opérations client sont envoyées et exécutées en parallèle sur tous les nœuds. Les résultats de chaque nœud sont compilés en un seul résultat, ce qui rend les opérations évolutives. Il améliore également les performances des transactions en raison du parallélisme.
Pipelining
Avec canalisation, NCache réduit la surcharge du réseau en combinant plusieurs opérations client envoyées dans un seul appel TCP au serveur. De même, le client reçoit les résultats de l'opération dans un seul bloc en un seul appel. Cela aide à faire évoluer les opérations.
Regroupement d'objets
Avec la mise en commun d'objets, le NCache le serveur regroupe les objets et les réutilise pour éviter d'invoquer le Garbage Collector encore et encore. La récupération de place est une tâche gourmande en performances, ce qui réduit la nécessité d'appeler le GC, ce qui se traduit par des performances et une évolutivité supérieures de votre environnement.
Cache Client
NCache . cache client, un cache au-dessus du cache, résidant là où réside l'application. Comme le cache client se situe entre l'application et le cache en cluster, il est automatiquement synchronisé et améliore les performances, en particulier pour les opérations de lecture. L'utilisation d'un cache client réduit la surcharge du réseau.
Pour plus de détails, vous pouvez consulter le blog : Architecture d'évolutivité dans NCache - Un aperçu
NCache Détails Opérations côté client Canalisation dans NCache
Conclusion
NCache, étant un natif .NET mise en cache distribuée solution, s'intègre parfaitement dans votre pile d'applications. Il améliore considérablement les performances grâce au regroupement d'objets, aux opérations parallèles et au cache client qui se trouve à côté de votre application. En plus d'être évolutif, il maintient également une disponibilité de 100 % à tout moment pour garantir la haute disponibilité de données et de clients.