Cache-Verwaltungsvorgänge im Cache
NCache Bei der Management-API handelt es sich um eine Reihe programmierbarer Methodenaufrufe, die es dem Benutzer ermöglichen, grundlegende Verwaltungsvorgänge für OutProc-Caches durchzuführen, ohne eines der beiden zu verwenden NCache Management Center oder Befehlszeilentools. Diese Management-API ist bei der Ausführung einer Anfrage normalerweise autark.
Voraussetzungen:
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: CacheVerbindung, CacheManager, CacheConnectionOptions, CacheClientConnectivityGeändert, CacheClientConnectivityChangedCallback, ClientInfo, ConnectedClientList, GetCacheHealth, StartCache, StopCache, GetCache.
Cache mit API-Aufrufen starten
Das StartCache
-Methode ermöglicht es dem Benutzer, einen OutProc-Cache auf dem angegebenen Server zu starten.
Cache starten
Der Cache beginnt mit der Verwendung von StartCache
Methode unter Verwendung der Server-IP und des Cache-Namens.
In diesem Beispiel muss der Benutzer den Cache und die Server-IP angeben, um einen Knoten zu starten.
// 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);
Starten Sie den Cache mit aktivierter Sicherheit
If Sicherheit auf Managementebene aktiviert ist, muss der Benutzer die Benutzeranmeldeinformationen angeben, um Verwaltungsvorgänge für den Cache auszuführen. Das StartCache
-Methode können Sie einen Cache mit Benutzeranmeldeinformationen starten.
Das folgende Beispiel startet einen Cache mit aktivierter Sicherheit.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Start cache with the security credentials
CacheManager.StartCache(cacheName, connection);
Stoppen Sie den Cache mit API-Aufrufen
Das StopCache
-Methode stoppt einen Cache auf einem bestimmten Server. Wenn Benutzer keinen Server angeben, liest die Methode Informationen aus der Client-Konfigurationsdatei. Wenn er vom Client-Knoten aufgerufen wird, stoppt der erste Server, der in der dem Cache zugeordneten Client-Konfigurationsdatei aufgeführt ist. Sie können einen Cache sowohl mit aktivierter als auch mit deaktivierter Sicherheit stoppen. Darüber hinaus kann der Cache auch ordnungsgemäß beendet werden, indem die festgelegt wird gracefullyShutDownNode
als wahr kennzeichnen.
Cache stoppen
In diesem Beispiel wird der Cache auf einem bereits gestarteten Knoten gestoppt. Der Cache-Name und die Server-IP, die auf einem bestimmten Knoten gestoppt werden sollen, müssen angegeben werden.
Cache mit aktivierter Sicherheit beenden
Das folgende Beispiel zeigt, wie ein Cache auf einem bestimmten Server mit aktivierter Sicherheit gestoppt wird, indem ihm die Benutzeranmeldeinformationen bereitgestellt werden.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Stop cache with the security credentials
CacheManager.StopCache(cacheName, connection);
Anzeigen des Cache-Status mithilfe von API-Aufrufen
Note
Stellen Sie sicher, dass Sie den folgenden Namensraum in Ihr Programm aufgenommen haben: Alachisoft.NCache.Runtime.CacheManagement
.
Das GetCacheHealth
-Methode ermöglicht es Benutzern, den Status des Cache-Server-Knotens anzuzeigen. Dieser Methodenaufruf gibt a zurück CacheHealth
Widerspruch gegen jeden Anruf einlegen. Sie können den Cache-Namen, den Serverknoten und den Verwaltungsport angeben, um Informationen zum Cache-Zustand zu erhalten. Das folgende Beispiel ruft den Cache-Zustand für den Cache-DemoCache ab, der auf dem angegebenen Serverknoten registriert ist und auf Portnummer 8250 lauscht.
// 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}");
Mit dem Cache verbundene Clients überwachen
NCache Bietet die Funktion zum Aktivieren von Clientaktivitätsereignissen. Mithilfe dieser Ereignisse stellt jeder Client eine Verbindung zu einem Cluster-Cache her und kann sich anmelden, um über die Verbindungs-/Trennungsereignisse anderer Clients benachrichtigt zu werden. Jeder Client kann auch eine benutzerdefinierte Kennung auf Prozessebene angeben, die je nach den Anforderungen des Clients an den Abonnenten zurückgegeben wird und eine Verbindung zu einem Cluster-Cache herstellen oder die Verbindung trennen kann. Clientaktivitätsereignisse werden ausgelöst, wenn ein Client eine Verbindung zu einem angegebenen Cache herstellt oder die Verbindung trennt. Diese Ereignisse werden im angegebenen Cache registriert und in einer benutzerdefinierten Rückrufmethode verarbeitet.
Mit Cache verbinden
Das AppName
ist eine eindeutige Kennung auf Prozessebene, die zum Zeitpunkt der Cache-Verbindung zugewiesen werden kann. Erstellen Sie zu diesem Zweck vor dem Herstellen einer Verbindung zum Cache eine Instanz von CacheConnectionOptions
und weisen Sie ihm eine benutzerdefinierte Zeichenfolge zu AppName
Eigentum.
Wenn also dieser Client eine Verbindung herstellt oder trennt, erhalten die Rückrufe aller Clients, die den Client abonniert haben, dies AppName
in ihrer ClientInfo
Beispiel.
// 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);
Event-Callback-Methode erstellen
Die Rückrufmethode ist benutzerdefiniert und wird aufgerufen, sobald die Clients mit dem Cache verbunden/getrennt sind. Die Methode wird gegen registriert CacheClientConnectivityChanged
Ereigniseigenschaft der CacheClientConnectivityChangedCallback
Geben Sie einen bestimmten Cache ein. Daher sollte die erstellte Methode mit der Signatur des Delegaten übereinstimmen:
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client);
Die erstellte Methode enthält die folgenden Parameter:
// User defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo)
{
// Handle event
}
Parameter | Beschreibung |
---|---|
cacheName |
Name des Caches, mit dem die Clients verbunden oder getrennt werden. Dieser fungiert als Absender des Ereignisses. |
clientInfo |
Ein Objekt der ClientInfo-Klasse, das Informationen zum Client enthält, der das Auslösen des Ereignisses verursacht hat. |
Client-Info-Klasse
Mitglied | Beschreibung |
---|---|
AppName |
Vom Benutzer zugewiesene, eindeutige Kennung auf Prozessebene. |
ClientID |
Eindeutige ID des Kunden. |
IPAddress |
IP, über die der Client verbunden ist. |
MacAddress |
Mac-Adresse des Clients. |
PhysicalCores |
Verfügbare physische Kerne des Clients. |
LogicalCores |
Verfügbare logische Kerne des Clients. |
ProcessID |
Prozess-ID des Clients. |
MachineName |
Computername des Clients. |
Status |
Der Konnektivitätsstatus des Cache-Clients. |
ClientVersion |
Die Version des Cache-Clients. |
IsDotNetCore |
Flag, um zu überprüfen, ob der Client ist .NET Core oder nicht. |
Memory |
Verfügbarer Arbeitsspeicher des Clients. |
Operating System |
Das vom Client verwendete Betriebssystem. |
Veranstaltung anmelden
Die Methode wird registriert, indem sie an die angehängt wird CacheClientConnectivityChanged
-Eigenschaft als Ereignisrückruf. Dadurch kann der Client auf Connect/Disconnect-Ereignisse anderer Clients lauschen. Wenn ein anderer Client eine Verbindung mit dem angegebenen Cache herstellt oder die Verbindung trennt, wird die Callback-Methode aufgerufen.
// Register method to event
cache.MessagingService.CacheClientConnectivityChanged += MyClientConnectivityCallback;
Überwachen Sie die Client-Informationen verbundener Clients
Das ClientInfo
jedes angeschlossenen Clients ist lokal in Form der verfügbar cache.ClientInfo
Eigentum.
Liste der verbundenen Clients anzeigen
Um bei Bedarf Informationen zu allen mit dem Cache verbundenen Clients zu erhalten, verwenden Sie die ConnectedClientList
Eigenschaft im Cache als:
// 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}");
}