Operações de gerenciamento de cache no cache
NCache API de gerenciamento é um conjunto de chamadas de método programáveis que permitem ao usuário executar operações básicas de gerenciamento em caches OutProc sem usar o NCache Centro de gerenciamento ou ferramentas de linha de comando. Esta API de gerenciamento geralmente é autossuficiente ao executar uma solicitação.
Pré-requisitos
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do cliente, consulte a página fornecida em Pré-requisitos da API do lado do cliente.
- Para obter detalhes da API, consulte: Conexão de cache, CacheManager, CacheConnectionOptions, CacheClientConnectivityAlterado, CacheClientConnectivityChangedCallback, Informações do cliente, Lista de clientes conectados, GetCacheHealth, IniciarCache, StopCache, Obter Cache.
Iniciar cache usando chamadas de API
A StartCache
O método permite que o usuário inicie um cache OutProc no servidor especificado.
Iniciar cache
O cache começa usando o StartCache
usando o IP do servidor e o nome do cache.
Neste exemplo, o usuário deve especificar o cache e o IP do servidor para iniciar um nó.
// 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 cache com segurança habilitada
If segurança de nível de gerenciamento estiver ativado, o usuário precisa fornecer as credenciais de usuário para executar qualquer operação de gerenciamento no cache. o StartCache
O método permite iniciar um cache com credenciais de usuário.
O exemplo a seguir inicia um cache com a segurança habilitada nele.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Start cache with the security credentials
CacheManager.StartCache(cacheName, connection);
Interromper cache usando chamadas de API
A StopCache
O método interrompe um cache em um servidor específico. Se os usuários não especificarem um servidor, o método lerá as informações do arquivo de configuração do cliente. Se chamado a partir do nó cliente, o primeiro servidor listado no arquivo de configuração do cliente associado ao cache é interrompido. Você pode parar um cache com segurança ativada ou desativada. Além disso, o cache também pode parar graciosamente definindo o gracefullyShutDownNode
sinalizar como verdadeiro.
Parar cache
Este exemplo interrompe o cache em um nó já iniciado. O nome do cache e o IP do servidor para parar em um determinado nó precisam ser especificados.
Parar o cache com segurança habilitada
O exemplo a seguir mostra como interromper um cache em um servidor específico com segurança habilitada fornecendo as credenciais do usuário.
// Provide user credentials to CacheConnection
connection.UserCredentials = new Credentials("your-username", "your-password");
// Stop cache with the security credentials
CacheManager.StopCache(cacheName, connection);
Visualizando o status do cache usando chamadas de API
Note
Certifique-se de ter incluído o seguinte namespace em seu programa: Alachisoft.NCache.Runtime.CacheManagement
.
A GetCacheHealth
O método permite que os usuários exibam o status do nó do servidor de cache. Esta chamada de método retorna um CacheHealth
objetar contra todas as chamadas. Você pode especificar o nome do cache, o nó do servidor e a porta de gerenciamento para obter as informações de funcionamento do cache. O exemplo a seguir obtém a integridade do cache para o cache demoCache, registrado no nó do servidor especificado, e escuta na porta 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}");
Monitorando clientes conectados ao cache
NCache fornece o recurso de ativação de eventos de atividade do cliente. Usando esses eventos, cada cliente se conecta a um cache clusterizado e pode se inscrever para notificar sobre os eventos de conexão/desconexão de outros clientes. Cada cliente também pode especificar um identificador customizado em nível de processo que retorna ao assinante com base nos requisitos do cliente, ele pode se conectar ou desconectar de um cache clusterizado. Os eventos de atividade do cliente são acionados quando um cliente se conecta ou se desconecta de um cache especificado. Esses eventos são registrados no cache especificado e tratados em um método de retorno de chamada definido pelo usuário.
Conectar ao Cache
A AppName
é um identificador exclusivo em nível de processo que pode ser atribuído no momento da conexão do cache. Para isso, antes de conectar-se ao cache, crie uma instância do CacheConnectionOptions
e atribua uma string de identificador personalizado ao seu AppName
propriedade.
Assim, se este cliente se conectar ou desconectar, os callbacks de todos os clientes que assinaram o cliente receberão este AppName
na sua ClientInfo
instância.
// 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);
Criar método de retorno de chamada de evento
O método de retorno de chamada é definido pelo usuário e é chamado quando os clientes são conectados/desconectados do cache. O método é registrado contra o CacheClientConnectivityChanged
propriedade do evento do CacheClientConnectivityChangedCallback
digite em um cache específico. Portanto, o método criado deve corresponder à assinatura do delegado:
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client);
O método criado contém os seguintes parâmetros:
// User defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo)
{
// Handle event
}
parâmetros | Descrição |
---|---|
cacheName |
Nome do cache com o qual os clientes estão conectados ou desconectados. Isso funciona como o remetente do evento. |
clientInfo |
Um objeto da classe ClientInfo contendo informações sobre o cliente que causou o disparo do evento. |
Classe de informações do cliente
Vogal | Descrição |
---|---|
AppName |
Identificador exclusivo atribuído pelo usuário, em nível de processo. |
ClientID |
ID exclusivo do cliente. |
IPAddress |
IP através do qual o cliente está conectado. |
MacAddress |
Endereço Mac do cliente. |
PhysicalCores |
Núcleos físicos disponíveis do cliente. |
LogicalCores |
Núcleos lógicos disponíveis do cliente. |
ProcessID |
ID do processo do cliente. |
MachineName |
Nome da máquina do cliente. |
Status |
O status de conectividade do cliente de cache. |
ClientVersion |
A versão do cliente de cache. |
IsDotNetCore |
Flag para verificar se o cliente está .NET Core ou não. |
Memory |
Memória disponível do cliente. |
Operating System |
O sistema operacional usado pelo cliente. |
Registrar Evento
O método é registrado anexando-o ao CacheClientConnectivityChanged
propriedade como um retorno de chamada de evento. Isso permite que o cliente escute eventos de conexão/desconexão de outros clientes. Se outro cliente se conectar ou desconectar do cache especificado, o método de retorno de chamada será chamado.
// Register method to event
cache.MessagingService.CacheClientConnectivityChanged += MyClientConnectivityCallback;
Monitorar informações do cliente de clientes conectados
A ClientInfo
de cada cliente conectado está disponível localmente na forma do cache.ClientInfo
propriedade.
Ver lista de clientes conectados
Para obter informações sobre todos os clientes conectados ao cache sob demanda, use o ConnectedClientList
propriedade no cache 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}");
}