Operaciones de gestión de caché en caché
NCache La API de administración es un conjunto de llamadas a métodos programables que permiten al usuario realizar operaciones de administración básicas en cachés OutProc sin usar el NCache Centro de gestión o herramientas de línea de comandos. Esta API de administración suele ser autosuficiente a la hora de ejecutar una solicitud.
Requisitos previos
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache características del lado del cliente, consulte la página proporcionada en Requisitos previos de la API del lado del cliente.
- Para obtener detalles de la API, consulte: Conexión de caché, Administrador de caché, Opciones de conexión de caché, CacheClientConnectivityCambió, CacheClientConnectivityChangedCallback, Información del cliente, Lista de clientes conectados, ObtenerCacheHealth, Iniciar caché, Detener Caché, Obtener Caché.
Iniciar caché usando llamadas API
El StartCache
El método permite al usuario iniciar una caché OutProc en el servidor especificado.
Caché de inicio
El caché comienza a usar el StartCache
método utilizando la IP del servidor y el nombre de caché.
En este ejemplo, el usuario debe especificar la caché y la IP del servidor para iniciar 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);
Iniciar caché con seguridad habilitada
If seguridad a nivel de gestión está habilitado, el usuario debe proporcionar las credenciales de usuario para realizar cualquier operación de administración en el caché. los StartCache
El método le permite iniciar un caché con las credenciales de usuario.
El siguiente ejemplo inicia un caché con la seguridad habilitada.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Start cache with the security credentials
CacheManager.StartCache(cacheName, connection);
Detener la memoria caché mediante llamadas a la API
El StopCache
El método detiene un caché en un servidor en particular. Si los usuarios no especifican un servidor, el método lee la información del archivo de configuración del cliente. Si se llama desde el nodo del cliente, se detiene el primer servidor enumerado en el archivo de configuración del cliente asociado con la memoria caché. Puede detener un caché con seguridad habilitada o deshabilitada. Además, la memoria caché también puede detenerse correctamente configurando el gracefullyShutDownNode
marcar como verdadero.
Detener caché
Este ejemplo detiene el caché en un nodo ya iniciado. Es necesario especificar el nombre de la caché y la IP del servidor que se detendrá en un nodo determinado.
Detener caché con seguridad habilitada
El siguiente ejemplo muestra cómo detener un caché en un servidor en particular con seguridad habilitada al proporcionarle las credenciales de usuario.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Stop cache with the security credentials
CacheManager.StopCache(cacheName, connection);
Visualización del estado de la caché mediante llamadas a la API
Note
Asegúrese de haber incluido el siguiente espacio de nombres en su programa: Alachisoft.NCache.Runtime.CacheManagement
.
El GetCacheHealth
El método permite a los usuarios ver el estado del nodo del servidor de caché. Esta llamada al método devuelve un CacheHealth
objetar contra cada llamada. Puede especificar el nombre de la caché, el nodo del servidor y el puerto de administración para obtener la información del estado de la caché. El siguiente ejemplo obtiene el estado de la caché para la caché demoCache, registrada en el nodo del servidor especificado y escucha en el puerto número 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}");
Supervisión de clientes conectados a la memoria caché
NCache proporciona la función de habilitar Eventos de actividad del cliente. Al utilizar estos eventos, cada cliente se conecta a una caché agrupada y puede suscribirse para recibir notificaciones sobre los eventos de conexión/desconexión de otros clientes. Cada cliente también puede especificar un identificador personalizado a nivel de proceso que regresa al suscriptor según los requisitos del cliente; puede conectarse o desconectarse de una caché agrupada. Los eventos de actividad del cliente se activan cuando un cliente se conecta o se desconecta de una caché específica. Estos eventos se registran en la caché especificada y se manejan en un método de devolución de llamada definido por el usuario.
Conectar a caché
El AppName
es un identificador único a nivel de proceso que se puede asignar en el momento de la conexión de caché. Para ello, antes de conectarse al caché, cree una instancia de CacheConnectionOptions
y asigne una cadena de identificación personalizada a su AppName
propiedad.
Por lo tanto, si este cliente se conecta o desconecta, las devoluciones de llamada de todos los clientes que se suscribieron al cliente obtendrán esto. AppName
en su ClientInfo
ejemplo.
// 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);
Crear método de devolución de llamada de evento
El método de devolución de llamada está definido por el usuario y se llama una vez que los clientes se conectan/desconectan del caché. El método está registrado contra el CacheClientConnectivityChanged
propiedad de evento del CacheClientConnectivityChangedCallback
escriba en un caché específico. Por lo tanto, el método creado debe coincidir con la firma del delegado:
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client);
El método creado contiene los siguientes parámetros:
// User defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo)
{
// Handle event
}
parámetros | Descripción |
---|---|
cacheName |
Nombre de la caché con la que se conectan o desconectan los clientes. Esto actúa como el remitente del evento. |
clientInfo |
Un objeto de la clase ClientInfo que contiene información sobre el cliente que provocó que se disparara el evento. |
Clase de información del cliente
Titular | Descripción |
---|---|
AppName |
Identificador único asignado por el usuario, a nivel de proceso. |
ClientID |
Identificación única del cliente. |
IPAddress |
IP a través de la cual se conecta el cliente. |
MacAddress |
Dirección Mac del cliente. |
PhysicalCores |
Núcleos físicos disponibles del cliente. |
LogicalCores |
Núcleos lógicos disponibles del cliente. |
ProcessID |
ID de proceso del cliente. |
MachineName |
Nombre de la máquina del cliente. |
Status |
El estado de conectividad del cliente de caché. |
ClientVersion |
La versión del cliente de caché. |
IsDotNetCore |
Marcar para verificar si el cliente es .NET Core o no. |
Memory |
Memoria disponible del cliente. |
Operating System |
El sistema operativo utilizado por el cliente. |
Registrar evento
El método se registra agregándolo al CacheClientConnectivityChanged
propiedad como una devolución de llamada de evento. Esto permite que el cliente escuche los eventos de conexión/desconexión de otros clientes. Si otro cliente se conecta o se desconecta del caché especificado, se llama al método de devolución de llamada.
// Register method to event
cache.MessagingService.CacheClientConnectivityChanged += MyClientConnectivityCallback;
Supervisar la información del cliente de los clientes conectados
El ClientInfo
de cada cliente conectado está disponible localmente en forma de cache.ClientInfo
propiedad.
Ver lista de clientes conectados
Para obtener información sobre todos los clientes conectados al caché bajo demanda, utilice el ConnectedClientList
propiedad en el caché como:
// 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}");
}