Opérations de gestion du cache sur le cache
NCache L'API de gestion est un ensemble d'appels de méthodes programmables qui permettent à l'utilisateur d'effectuer des opérations de gestion de base sur les caches OutProc sans utiliser l'API. NCache Centre de gestion ou outils de ligne de commande. Cette API de gestion est généralement autonome lors de l’exécution d’une requête.
Pré-requis
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté client, veuillez vous référer à la page donnée sur Prérequis de l'API côté client.
- Pour plus de détails sur l'API, reportez-vous à : CacheConnexion, Gestionnaire de cache, CacheConnectionOptionsCacheConnectionOptions, CacheClientConnectivityChanged, CacheClientConnectivityChangedCallback, InfoClient, Liste de clients connectés, ObtenirCacheHealth, Démarrer le cache, Arrêter le cache, ObtenirCache.
Démarrer le cache à l'aide d'appels d'API
La StartCache
La méthode permet à l'utilisateur de démarrer un cache OutProc sur le serveur spécifié.
Démarrer le cache
Le cache commence à utiliser le StartCache
méthode en utilisant l'adresse IP du serveur et le nom du cache.
Dans cet exemple, l'utilisateur doit spécifier le cache et l'adresse IP du serveur pour démarrer un nœud.
// Specify cache name and server Info
string cacheName = "demoCache";
string serverIp = "20.200.20.40";
// Provide server info to CacheConnection
var connection = new CacheConnection(serverIp);
// Use CacheConnection to start cache
CacheManager.StartCache(cacheName, connection);
Démarrer le cache avec la sécurité activée
If sécurité au niveau de la gestion est activé, l'utilisateur doit fournir les informations d'identification de l'utilisateur pour effectuer des opérations de gestion sur le cache. La StartCache
La méthode vous permet de démarrer un cache avec les informations d'identification de l'utilisateur.
L'exemple suivant démarre un cache avec la sécurité activée.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Start cache with the security credentials
CacheManager.StartCache(cacheName, connection);
Arrêter le cache à l'aide d'appels d'API
La StopCache
La méthode arrête un cache sur un serveur particulier. Si les utilisateurs ne spécifient pas de serveur, la méthode lit les informations du fichier de configuration client. S'il est appelé depuis le poste client, le premier serveur répertorié dans le fichier de configuration client associé au cache s'arrête. Vous pouvez arrêter un cache avec la sécurité activée ou désactivée. De plus, le cache peut également s'arrêter gracieusement en définissant le gracefullyShutDownNode
signaler comme vrai.
Arrêter le cache
Cet exemple arrête le cache sur un nœud déjà démarré. Le nom du cache et l'adresse IP du serveur à arrêter sur un nœud donné doivent être spécifiés.
Arrêter le cache avec la sécurité activée
L'exemple suivant montre comment arrêter un cache sur un serveur particulier avec la sécurité activée en lui fournissant les informations d'identification de l'utilisateur.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Stop cache with the security credentials
CacheManager.StopCache(cacheName, connection);
Affichage de l'état du cache à l'aide d'appels d'API
Notes
Assurez-vous d'avoir inclus l'espace de noms suivant dans votre programme : Alachisoft.NCache.Runtime.CacheManagement
.
La GetCacheHealth
La méthode permet aux utilisateurs d'afficher l'état du nœud du serveur de cache. Cet appel de méthode renvoie un CacheHealth
s'opposer à chaque appel. Vous pouvez spécifier le nom du cache, le nœud du serveur et le port de gestion pour obtenir les informations sur l'état du cache. L'exemple suivant obtient l'état du cache pour le cache demoCache, enregistré sur le nœud de serveur spécifié, et écoute sur le numéro de port 8250.
// Get cache health on the specified node
CacheHealth cacheHealth = CacheManager.GetCacheHealth(cacheName, connection);
Console.WriteLine($"Cache : {cacheHealth.CacheName}\nNode : {serverIp}\nTopology : {cacheHealth.Topology}\nNode Status : {cacheHealth.Status}");
Surveillance des clients connectés au cache
NCache fournit la fonctionnalité d’activation des événements d’activité client. À l'aide de ces événements, chaque client se connecte à un cache en cluster et peut s'abonner pour être informé des événements de connexion/déconnexion des autres clients. Chaque client peut également spécifier un identifiant personnalisé au niveau du processus qui est renvoyé à l'abonné en fonction des exigences du client. Il peut se connecter ou se déconnecter d'un cache en cluster. Les événements d'activité client se déclenchent lorsqu'un client se connecte ou se déconnecte d'un cache spécifié. Ces événements sont enregistrés dans le cache spécifié et sont gérés dans une méthode de rappel définie par l'utilisateur.
Se connecter au cache
La AppName
est un identifiant unique au niveau du processus qui peut être attribué au moment de la connexion au cache. Pour cela, avant de vous connecter au cache, créez une instance de CacheConnectionOptions
et attribuez une chaîne d'identification personnalisée à son AppName
propriété.
Ainsi, si ce client se connecte ou se déconnecte, les rappels de tous les clients abonnés au client obtiendront ceci AppName
dans leur ClientInfo
exemple.
// Create an instance of CacheConnectionOptions
var options = new CacheConnectionOptions();
// Assign the custom identifier
options.AppName = "MyApp";
// Connect to cache with custom AppName property
ICache cache = CacheManager.GetCache(cacheName, options);
Créer une méthode de rappel d'événement
La méthode de rappel est définie par l'utilisateur et est appelée une fois que les clients sont connectés/déconnectés du cache. La méthode est enregistrée auprès du CacheClientConnectivityChanged
propriété événementielle du CacheClientConnectivityChangedCallback
tapez dans un cache spécifique. Par conséquent, la méthode créée doit correspondre à la signature du délégué :
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client);
La méthode créée contient les paramètres suivants :
// User defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo)
{
// Handle event
}
Paramètres | Description |
---|---|
cacheName |
Nom du cache avec lequel les clients sont connectés ou déconnectés. Cela agit comme l'expéditeur de l'événement. |
clientInfo |
Un objet de la classe ClientInfo contenant des informations concernant le client qui a provoqué le déclenchement de l'événement. |
Classe d'informations sur le client
Membre | Description |
---|---|
AppName |
Identifiant unique, au niveau du processus, attribué à l'utilisateur. |
ClientID |
Identifiant unique du client. |
IPAddress |
IP via laquelle le client est connecté. |
MacAddress |
Adresse Mac du client. |
PhysicalCores |
Cœurs physiques disponibles du client. |
LogicalCores |
Cœurs logiques disponibles du client. |
ProcessID |
ID de processus du client. |
MachineName |
Nom de machine du client. |
Status |
L'état de connectivité du client de cache. |
ClientVersion |
La version du client de cache. |
IsDotNetCore |
Indicateur pour vérifier si le client est .NET Core ou non. |
Memory |
Mémoire disponible du client. |
Operating System |
Le système d'exploitation utilisé par le client. |
S'inscrire à l'événement
La méthode est enregistrée en l'ajoutant au CacheClientConnectivityChanged
propriété en tant que rappel d'événement. Cela permet au client d'écouter les événements de connexion/déconnexion d'autres clients. Si un autre client se connecte ou se déconnecte du cache spécifié, la méthode de rappel est appelée.
// Register method to event
cache.MessagingService.CacheClientConnectivityChanged += MyClientConnectivityCallback;
Surveiller les informations client des clients connectés
La ClientInfo
de chaque client connecté est disponible localement sous la forme du cache.ClientInfo
propriété.
Afficher la liste des clients connectés
Pour obtenir des informations sur tous les clients connectés au cache à la demande, utilisez le ConnectedClientList
propriété sur le cache comme :
// Connect to cache with custom AppName property
ICache cache = CacheManager.GetCache(cacheName, options);
// Get list of all connected clients
IList<ClientInfo> connectedClients = cache.ConnectedClientList;
Console.WriteLine($"Following are the clients connected to '{cacheName}':");
foreach(ClientInfo clientInfo in connectedClients)
{
Console.WriteLine($"Client ID : {clientInfo.ClientID}");
}