Operazioni di gestione della cache sulla cache
NCache L'API di gestione è un insieme di chiamate di metodi programmabili che consentono all'utente di eseguire operazioni di gestione di base sulle cache OutProc senza utilizzare né NCache Centro Gestione o Strumenti da riga di comando. Questa API di gestione è solitamente autosufficiente durante l'esecuzione di una richiesta.
Prerequisiti
- Per conoscere i prerequisiti standard richiesti per lavorare con all NCache Per le funzionalità lato client fare riferimento alla pagina specificata Prerequisiti dell'API lato client.
- Per i dettagli dell'API, fare riferimento a: Connessione cache, Gestore cache, Opzioni di connessione cache, CacheClientConnectivityCambiato, CacheClientConnectivityChangedCallback, Informazioni sul cliente, Elenco client connessi, OttieniCacheHealth, Avvia cache, StopCache, Ottieni cache.
Avvia la cache utilizzando le chiamate API
I StartCache
consente all'utente di avviare una cache OutProc sul server specificato.
Avvia cache
La cache inizia a utilizzare il file StartCache
metodo utilizzando l'IP del server e il nome della cache.
In questo esempio, l'utente deve specificare la cache e l'IP del server per avviare un nodo.
// 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);
Avvia cache con sicurezza abilitata
If sicurezza a livello gestionale è abilitato, l'utente deve fornire le credenziali utente per eseguire qualsiasi operazione di gestione sulla cache. Il StartCache
il metodo ti consente di avviare una cache con le credenziali dell'utente.
L'esempio seguente avvia una cache con la sicurezza abilitata.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Start cache with the security credentials
CacheManager.StartCache(cacheName, connection);
Arresta la cache utilizzando le chiamate API
I StopCache
metodo interrompe una cache su un particolare server. Se gli utenti non specificano un server, il metodo legge le informazioni dal file di configurazione del client. Se chiamato dal nodo client, il primo server elencato nel file di configurazione del client associato alla cache si arresta. È possibile arrestare una cache con sicurezza abilitata e disabilitata. Inoltre, la cache può anche interrompersi con grazia impostando il file gracefullyShutDownNode
segnala come vero.
Arresta cache
Questo esempio arresta la cache su un nodo già avviato. È necessario specificare il nome della cache e l'IP del server da arrestare su un determinato nodo.
Arresta la cache con la sicurezza abilitata
L'esempio seguente mostra come arrestare una cache su un determinato server con la sicurezza abilitata fornendo le credenziali dell'utente.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Stop cache with the security credentials
CacheManager.StopCache(cacheName, connection);
Visualizzazione dello stato della cache tramite chiamate API
Note:
Assicurati di aver incluso il seguente spazio dei nomi nel tuo programma: Alachisoft.NCache.Runtime.CacheManagement
.
I GetCacheHealth
Il metodo consente agli utenti di visualizzare lo stato del nodo del server cache. Questa chiamata al metodo restituisce a CacheHealth
opporsi ad ogni chiamata. È possibile specificare il nome della cache, il nodo del server e la porta di gestione per ottenere informazioni sullo stato della cache. L'esempio seguente ottiene l'integrità della cache per la cache demoCache, registrata sul nodo del server specificato e in ascolto sul numero di porta 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}");
Monitoraggio dei client connessi alla cache
NCache fornisce la funzionalità di abilitazione degli eventi attività client. Utilizzando questi eventi, ciascun client si connette a una cache in cluster e può iscriversi per ricevere notifiche sugli eventi di connessione/disconnessione di altri client. Ogni client può inoltre specificare un identificatore personalizzato a livello di processo che ritorna all'abbonato in base ai requisiti del client e può connettersi o disconnettersi da una cache in cluster. Gli eventi attività client si attivano quando un client si connette o si disconnette da una cache specificata. Questi eventi vengono registrati nella cache specificata e gestiti in un metodo di callback definito dall'utente.
Connetti alla cache
I AppName
è un identificatore univoco a livello di processo che può essere assegnato al momento della connessione alla cache. A questo scopo, prima di connettersi alla cache, creare un'istanza di CacheConnectionOptions
e assegna una stringa di identificatore personalizzata al suo AppName
proprietà.
Pertanto, se questo client si connette o si disconnette, i callback di tutti i client che hanno effettuato la sottoscrizione al client otterranno questo AppName
a loro ClientInfo
esempio.
// 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);
Crea un metodo di richiamata dell'evento
Il metodo di callback è definito dall'utente e viene chiamato una volta che i client vengono connessi/disconnessi dalla cache. Il metodo è registrato contro il CacheClientConnectivityChanged
proprietà dell'evento di CacheClientConnectivityChangedCallback
digita in una cache specifica. Quindi, il metodo creato dovrebbe corrispondere alla firma del delegato:
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client);
Il metodo creato contiene i seguenti parametri:
// User defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo)
{
// Handle event
}
parametri | Descrizione |
---|---|
cacheName |
Nome della cache con cui i client sono connessi o disconnessi. Questo funge da mittente dell'evento. |
clientInfo |
Un oggetto della classe ClientInfo contenente informazioni relative al client che ha causato l'attivazione dell'evento. |
Classe informazioni cliente
Member | Descrizione |
---|---|
AppName |
Identificatore univoco assegnato dall'utente, a livello di processo. |
ClientID |
ID univoco del cliente. |
IPAddress |
IP attraverso il quale il client è connesso. |
MacAddress |
Indirizzo Mac del client. |
PhysicalCores |
Core fisici disponibili del client. |
LogicalCores |
Core logici disponibili del client. |
ProcessID |
ID processo del client. |
MachineName |
Nome macchina del client. |
Status |
Lo stato di connettività del client cache. |
ClientVersion |
La versione del client cache. |
IsDotNetCore |
Flag per verificare se il client lo è .NET Core o non. |
Memory |
Memoria disponibile del client. |
Operating System |
Il sistema operativo utilizzato dal client. |
Registra evento
Il metodo viene registrato aggiungendolo al file CacheClientConnectivityChanged
proprietà come callback di un evento. Ciò consente al client di ascoltare gli eventi di connessione/disconnessione di altri client. Se un altro client si connette o si disconnette dalla cache specificata, viene chiamato il metodo di callback.
// Register method to event
cache.MessagingService.CacheClientConnectivityChanged += MyClientConnectivityCallback;
Monitorare le informazioni sui client dei client connessi
I ClientInfo
di ciascun client connesso è disponibile localmente sotto forma di file cache.ClientInfo
proprietà.
Visualizza l'elenco dei client collegati
Per ottenere informazioni su tutti i client connessi alla cache on demand, utilizzare il file ConnectedClientList
proprietà nella cache come:
// 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}");
}