NCache Projet
NCache Le client représente les composants côté application qui connectent les applications à NCache serveurs. Un client peut être une application utilisant les serveurs. NCache SDK, ou une machine où le kit de développement logiciel (SDK) complet NCache L'installation du client est effectuée pour la gestion à distance du client, la surveillance côté client et la prise en charge du cache client OutProc.
Le NCache L'architecture client comprend des kits de développement logiciel (SDK) clients, des services côté client optionnels, des fichiers de configuration, des fichiers journaux et des mécanismes de communication client-serveur. Ces composants fonctionnent de concert pour permettre aux applications de découvrir les serveurs de cache, d'effectuer des opérations de cache, de gérer les changements de topologie et, en option, d'utiliser un cache client plus proche de l'application.
Kit de développement logiciel (SDK) client
Le NCache Le kit de développement logiciel client (SDK) fournit des API d'application qui permettent aux applications de se connecter à NCache et effectuer des opérations de cache telles que l'ajout, l'insertion, la récupération, la suppression, les opérations en masse, les requêtes, les événements, le verrouillage et d'autres fonctionnalités prises en charge.
NCache fournit une prise en charge SDK pour les plateformes suivantes :
L'application cliente utilise le SDK approprié pour communiquer avec NCache serveurs. Dans un déploiement utilisant uniquement le SDK, l'application ne nécessite aucun serveur. NCache Le service client doit s'exécuter sur la machine cliente. L'application charge le NCache Les bibliothèques clientes se connectent aux serveurs de cache configurés en utilisant soit des fichiers de configuration côté client, soit les options de connexion fournies dans le code de l'application.
Connexion client basée sur le SDK
Dans un déploiement basé sur un SDK, l'application cliente se connecte au cache en utilisant :
- Nom du cache
- Informations sur le serveur
- Projet connexion Paramétres
- Sécurité paramètres, si activés
- TLS paramètres, si la communication sécurisée est activée
Les informations de connexion initiales sont généralement lues à partir de client.ncconfElle peut également être fournie par programmation via les options de connexion du client. Lorsque les paramètres du fichier de configuration et les options de connexion par programmation sont utilisés simultanément, ces dernières sont prioritaires.
Communication avec les clients
NCache Les clients communiquent avec les serveurs de cache via des connexions TCP persistantes. Ce modèle de communication client-serveur est conçu pour prendre en charge les opérations de cache à haut débit, les requêtes parallèles, le routage prenant en compte la topologie du réseau et la reprise automatique après des interruptions réseau temporaires.
Méthodes de communication
Google Protobuf comme format d'échange de données : NCache Les clients utilisent Google Protocol Buffers sur TCP pour la communication client-serveur. Cela offre un format binaire efficace et assure la compatibilité entre les anciennes versions du client et les nouvelles versions du serveur de cache.
Exécution parallèle de requêtes basée sur le modèle requête-réponse : NCache Utilise un protocole requête-réponse basé sur un identifiant unique (RequestId). Chaque requête client se voit attribuer un RequestId unique, ce qui permet d'envoyer plusieurs requêtes sur la même connexion TCP sans attendre les réponses précédentes. Ceci permet l'exécution parallèle de requêtes par les applications clientes.
Connaissance de la topologie du cache : NCache Les clients connaissent la topologie du cache. Partitionné Dans les topologies de type Partition-Réplication, le client récupère les cartes de distribution et se connecte directement aux nœuds serveur qui possèdent les partitions de données requises. Dans une topologie répliquée, le client peut se connecter à un serveur approprié, car chaque serveur contient les mêmes données.
Gestion des échecs de connexion : NCache Les clients maintiennent des connexions permanentes avec les serveurs de cache. Si une connexion est interrompue en raison d'un problème réseau, le client tente de rétablir la connexion en arrière-plan dès que le serveur est de nouveau accessible.
Sérialisation des données : Les données de l'application sont sérialisées avant d'être envoyées au serveur cache. NCache supports Sérialisation JSON et binaireet le client utilise le format de sérialisation configuré pour le cache.
Cryptage des données: If chiffrement Une fois configuré, le client chiffre les données de l'application après sérialisation avant de les envoyer au serveur cache.
Compression des données : If compression Lorsque cette option est configurée, le client compresse les données avant de les envoyer au cache. Cela permet de réduire l'utilisation du réseau et la taille du cache pour les objets volumineux.
Connexion au cache
Le client de cache a besoin d'informations serveur pour se connecter au cache. Ces informations peuvent être fournies via client.ncconf ou par programmation via les options de connexion. Le client utilise ces informations pour localiser les serveurs de cache et initialiser une connexion avec le cache cible.
La connexion du client suit généralement le flux suivant :
- Le client établit une connexion TCP avec NCache Service via le configuré
client-serverPort. - Le client demande la liste des serveurs de cache configurés afin de pouvoir découvrir les nœuds de cache disponibles.
- Le client envoie une requête d'initialisation qui inclut le nom du cache et les informations d'identification de sécurité si la sécurité du cache est activée.
- Si le cache s'exécute dans un processus distinct, le service dirige le client vers le processus de cache ou le port de cache approprié.
- Si le client se connecte à un Répliqué cache et client l'équilibrage de charge Si cette option est activée, le client se connecte à un serveur approprié en fonction de la charge client.
- Si le client se connecte à un cache partitionné ou à un cache à réplique de partition, il récupère les cartes de distribution et établit des connexions avec les serveurs de cache requis.
- Le client récupère également les détails de configuration du cache, tels que le format de sérialisation, les paramètres de compression, les paramètres de chiffrement, les index de requêtes et les types enregistrés, le cas échéant.
Note
NCache Configure automatiquement le pare-feu pour ouvrir les ports nécessaires sous Windows. Sous Linux, vous devez ouvrir les ports requis. NCache Configurez les ports manuellement en fonction de votre environnement.
Installateur client
Le NCache Le programme d'installation du client installe les composants côté client nécessaires à la gestion du client, au cache client OutProc, à la surveillance côté client et à la gestion de la configuration locale.
Une installation client complète est utile lorsque la machine cliente doit être gérée depuis le NCache Centre de gestion ou outils PowerShell, ou lorsque l'application nécessite un cache client OutProc.
Le programme d'installation client est généralement utilisé pour :
- Gestion de clients à distance
- Cache client OutProc
- Surveillance et compteurs côté client
- fichiers de configuration du client local
- Assistance aux services et processus côté client
Note
Si une application n'a besoin d'utiliser que le NCache Le SDK ne nécessite ni gestion à distance ni cache client OutProc ; un déploiement basé uniquement sur le SDK peut donc suffire.
Processus
Lorsque vous NCache Une fois installé sur une machine, le client peut exécuter des services et des processus côté client en fonction des composants installés et des fonctionnalités activées. Ces processus prennent en charge la gestion du client, l'hébergement du cache client et les opérations d'exécution en arrière-plan.
Les principaux processus côté client sont :
Alachisoft.NCache.Service
Le NCache Le service est le principal service de gestion côté client lorsque le NCache L'installateur client est utilisé. Sur une machine cliente, il est responsable de la gestion de la configuration côté client, de l'activation de la gestion à distance du client et de la prise en charge des opérations de cache client, le cas échéant.
Sur un serveur cache, le NCache Ce service gère les caches côté serveur et accepte les premières connexions client. Sur une machine cliente, son rôle est plus restreint et axé sur la gestion côté client.
Le NCache Le service sur une machine cliente est utilisé pour :
- Enregistrement et gestion de la configuration client
- Autoriser les opérations client à distance depuis NCache Centre de gestion ou PowerShell
- Gestion du cycle de vie du cache client OutProc, le cas échéant
- Prise en charge de la surveillance et du diagnostic côté client
Si la machine cliente est ajoutée en tant que nœud client à un cache, les outils de gestion peuvent utiliser NCache Service sur la machine cliente pour mettre à jour la configuration côté client.
Note
Les applications utilisant uniquement un SDK ne nécessitent généralement pas le NCache Service sur la machine cliente. Ce service est requis lorsque la machine cliente a besoin d'une alimentation complète. NCache fonctionnalités d'installation du client telles que la gestion à distance ou le cache client OutProc.
Alachisoft.NCache.CacheHost
Le processus CacheHost sert à héberger une instance de cache en dehors du processus applicatif. Sur une machine cliente, cela concerne principalement un cache client OutProc.
Le cache client peut s'exécuter au sein du processus applicatif ou en dehors, selon le mode de cache sélectionné. Lorsqu'un cache client OutProc est utilisé, il s'exécute dans un processus distinct et non au sein de l'application. Ceci assure l'isolation des processus entre l'application et le cache client.
Le processus CacheHost sur une machine cliente est responsable de :
- Hébergement du cache client OutProc
- Maintenir les données mises en cache à proximité de l'application
- Communiquer avec le cache distant en cluster lorsque cela est nécessaire
- Réduction des allers-retours réseau répétés vers le cluster de cache pour les données fréquemment utilisées
L'exécution d'un cache client OutProc dans un processus séparé est utile lorsque plusieurs applications sur la même machine cliente doivent partager le même cache client, ou lorsque la mémoire cache et son cycle de vie doivent être isolés du processus de l'application.
Alachisoft.NCache.Service d'exécution
Le NCache Le service d'exécution est principalement un composant côté serveur utilisé pour les tâches d'exécution en arrière-plan telles que le chargement et l'actualisation du cache. Ces tâches chargent ou actualisent les données d'une source de données dans les caches côté serveur.
Sur un poste client standard, le service d'exécution ne fait pas partie de l'environnement d'exécution normal de l'application cliente. Il n'est pas nécessaire pour les opérations de cache de base basées sur le SDK ni pour la communication client-serveur classique.
Si le service d'exécution est installé avec une configuration complète NCache Lors de la configuration, il convient de la comprendre comme un composant d'exécution en arrière-plan utilisé par NCache fonctionnalités qui nécessitent l'exécution de tâches distinctes. Pour le fonctionnement normal NCache Du point de vue de l'utilisation côté client, les principaux processus côté client sont les suivants : NCache Service et, lorsque le cache client OutProc est utilisé, le processus CacheHost.
Note
Si un problème côté client est lié au fonctionnement normal du cache de l'application, consultez d'abord les journaux du client et de l'application. Les journaux du service d'exécution sont généralement plus pertinents pour le diagnostic du chargeur et du système d'actualisation côté serveur.
Les fichiers de configuration
NCache Les fichiers de configuration côté client sont utilisés par les applications clientes et les composants côté client pour découvrir les serveurs de cache, appliquer les paramètres de connexion, configurer la sécurité et activer une communication sécurisée.
L'emplacement des fichiers de configuration côté client dépend du type de déploiement de l'application : SDK uniquement ou déploiement complet. NCache Installation du client.
Emplacement de configuration basé sur le SDK
Dans le cadre d'un déploiement utilisant uniquement un SDK, les fichiers de configuration doivent être conservés avec l'application ou à l'emplacement prévu par le package SDK utilisé. Cela permet à l'application de charger les éléments nécessaires. NCache Configuration du client à l'exécution sans nécessiter la configuration complète NCache Installation du client.
Cette approche convient lorsque :
- L'application est déployée avec NCache Bibliothèques SDK.
- La machine cliente ne nécessite pas de gestion à distance.
- L'application fournit les informations du serveur via des fichiers de configuration ou des options de connexion.
- Le cache client OutProc n'est pas requis.
Emplacement de configuration du programme d'installation du client
When the NCache L'installateur client est utilisé, les fichiers de configuration sont stockés dans le NCache répertoire de configuration d'installation :
- Fenêtres: Disponible à
%NCHOME%\config. - Linux: Disponible à
/opt/ncache/config.
Ces fichiers sont utilisés par NCache Services clients, outils de gestion et applications client exécutées sur la machine.
Fichiers de configuration côté client
Les fichiers de configuration suivants sont généralement pertinents sur une machine cliente :
client.ncconf: Contient les informations de connexion au cache côté client. Il est utilisé par le NCache API client permettant de localiser les serveurs de cache et d'appliquer des paramètres de connexion tels que les tentatives de reconnexion, les délais d'attente, les ports et la liste des serveurs.
sécurité.ncconf: Stocke les informations client relatives à la sécurité utilisées lorsque la sécurité du cache est activée. Permet aux applications clientes de se connecter en utilisant les informations d'identification et les paramètres de sécurité requis.
tls.ncconf: Ce fichier stocke les paramètres TLS utilisés pour la communication sécurisée entre le client et le serveur. Il est requis lorsque TLS est activé entre les applications clientes et les serveurs de cache.
surveillance.ncconf: Stocke la configuration relative à la surveillance utilisée par NCache composants de surveillance.
Fichiers log
NCache Les fichiers journaux côté client aident à diagnostiquer les problèmes de connexion à l'application, les problèmes de communication client-serveur, le comportement du cache client et les erreurs d'exécution côté client.
L'emplacement des journaux côté client dépend du type de déploiement de l'application : SDK uniquement ou déploiement complet. NCache Installation du client.
Emplacement du journal basé sur le SDK
Dans les déploiements utilisant uniquement le SDK, les journaux du client sont généralement générés à l'emplacement de journalisation spécifique à l'application ou dans le chemin configuré via le SDK client ou les paramètres de l'application.
Cette approche est utile lorsque NCache Les bibliothèques clientes sont déployées directement avec l'application et aucune bibliothèque complète n'est requise. NCache L'installation du client est déjà présente sur la machine.
Emplacement du journal d'installation du client
When the NCache L'installateur client est utilisé, les fichiers journaux sont générés sous le répertoire NCache répertoire des journaux :
- Fenêtres: Disponible à
%NCHOME%\log-files. - Linux: Disponible à
/opt/ncache/log-files.
Le fichier ou dossier journal exact dépend du composant côté client qui génère le journal.
Activation des journaux clients
La journalisation côté client peut être activée via client.ncconf en mettant enable-client-logs à True.
<cache id="demoCache"
enable-client-logs="True"
log-level="error">
<server name="20.200.20.40"/>
</cache>
Voir aussi
Client Management
Configuration client (client.ncconf)
Topologies de cache
Cache Client