Dynamic Clustering in In-Memory Distributed Cache
A NCache cluster de cache distribuído na memória é auto-cura, dinâmico e altamente escalável. Você pode adicionar ou remover servidores de cache em tempo de execução, sem tempo de inatividade do aplicativo. O NCache O cluster fornece escalabilidade linear em termos de tratamento de dados e processamento de solicitações de aplicativos. Quando seu cluster de cache atingir seus limites máximos, você poderá adicionar mais servidores redistributar as solicitações e cargas de dados.
Se um servidor de cache ficar inativo, o cluster de cache detectará automaticamente a falha do servidor e se ajustará de acordo. Vamos considerar um caso em que um servidor de cache fica inativo no Réplica de partição topologia, o cluster de cache reorganiza automaticamente as partições e os dados. Os servidores de cache restantes copiam os dados restantes do servidor que caiu de seu servidor de backup.
Cada cache clusterizado possui um cluster dedicado baseado em TCP. Os aplicativos se comunicam com o cluster de cache por TCP. Portanto, se o processo do aplicativo falhar, isso não afetará o cluster de cache. Cada cluster de cache requer uma porta TCP separada no momento da configuração de um cache clusterizado. O Réplica de partição topologia ocupa uma porta TCP extra para a réplica.
A Arquitetura ponto a ponto permite que cada servidor de cache estabeleça uma conexão TCP com todos os outros servidores de cache. Isso permite que os servidores de cache se comuniquem diretamente entre si sempre que necessário ou transmitam as solicitações em outros momentos. O cluster de cache, arquitetura multithread, permite executar operações em paralelo, colhendo assim os benefícios do hardware poderoso de hoje.
Você pode configurar o tempo limite da solicitação para o cluster de cache no momento da configuração do cluster de cache. O tempo limite de solicitação padrão é de 60 segundos.
Note
Este recurso também está disponível em NCache Professional.
Note
As portas de cluster atribuídas ao cluster de cache devem estar disponíveis em todos os servidores de cache configurados. Da mesma forma, o firewall deve ser configurado para permitir a comunicação entre servidores de cache em determinadas portas do cluster. O cluster padrão intervalo de portas começa a partir de 7800.
Coordenador de cluster em um cache distribuído na memória
Em um ambiente distribuído, a coordenação de diferentes tarefas é inevitável. No cluster de cache, o servidor coordenador desempenha esse papel vital. Cada cluster de cache tem um servidor de cache coordenador.
A seleção do servidor coordenador em NCache é simples. O servidor de cache mais antigo assume a função de servidor coordenador. Assim, o servidor de cache que ingressou no cluster primeiro se torna o servidor coordenador. Se um servidor de cache coordenador sair do cluster de cache graciosamente ou abruptamente, o próximo servidor de cache mais antigo torna-se o coordenador.
O servidor de cache do coordenador é responsável pelo seguinte:
Associação do cluster: O servidor coordenador é responsável por aceitar solicitações de adesão de novos servidores de cache. Ele também transmite a lista de membros atualizada para o restante dos servidores. Da mesma forma, quando um servidor sai do cluster, o servidor coordenador notifica os outros servidores sobre a mudança na associação.
Geração do Mapa de Distribuição: O servidor coordenador gera o mapa de distribuição e gerencia as réplicas sempre que um servidor entra ou sai do cluster de cache no Particionado e Réplica de partição topologias.
Pedido de Pedido: Adicionando e atualização de dados no Topologia replicada requer que as operações em todos os servidores de cache sejam executadas na mesma ordem para obter consistência de dados. Essas operações recebem tokens de sequência do servidor coordenador e a execução das operações ocorre de acordo com esses tokens de sequência. Esse mecanismo garante que as mesmas atualizações em um determinado
CacheItem
são aplicados em todo o cluster.Gerenciamento de Carregador e Atualizador de Dados de Cache: Carregador e Atualizador de Inicialização do Cache as tarefas são executadas no servidor coordenador. Quando vários dicas de distribuição são especificados para o Cache Startup Loader ou Refresher, o coordenador atribui essas dicas a diferentes membros do cluster para carregamento e atualização paralelos.
Invalidação e remoção de dados: Cada servidor de cache em Replicado e Espelho topologias contém o mesmo conjunto de dados. Portanto, o servidor coordenador é responsável pela invalidação dos dados (Vencimentos e Dependências) em todo o cluster. O servidor coordenador determina quais itens devem ser expirado or despejado do cache e remove esses itens de todo o cluster por meio de uma chamada de cluster.
Como os servidores ingressam e saem do cluster de cache em um cache distribuído na memória
A seguir está o processo pelo qual os nós do servidor ingressam e saem do cluster de cache:
Descoberta de membros e ingresso no servidor
Quando você inicia o cache no primeiro servidor de cache, ele forma o cluster de cache. Um processo de descoberta de membros é executado em cada servidor de cache no início do cache. No processo de descoberta, o servidor de cache tenta estabelecer uma conexão TCP com os outros membros do cache no porta de cluster configurada.
Quando o primeiro servidor de cache é inicializado e não consegue estabelecer uma conexão com os outros servidores de cache no cluster de cache, ele conclui que nenhum outro servidor de cache está ativo. Este servidor torna-se então o primeiro membro e o servidor coordenador do cluster de cache. Assim que os outros servidores são iniciados, eles passam pelo mesmo processo de descoberta e estabelecem conexões com os servidores de cache em execução.
Esses servidores de cache buscam informações sobre o servidor coordenador do cluster de cache de servidores de cache já em execução. Assim que o processo de descoberta for concluído e o servidor coordenador for determinado, os servidores de cache recém-ingressados enviam solicitações de associação ao coordenador.
O coordenador aceita as solicitações de adesão, gera o mapa de distribuição (somente no Particionado e Réplica de partição topologias) e transmite a nova lista de membros para todo o cluster de cache.
Saída Graciosa do Servidor
Quando você parar o cache em um servidor de cache através do NCache Centro de Gerenciamento or Ferramentas do PowerShell, o servidor de cache de saída informa o coordenador enviando uma solicitação de saída. O coordenador processa imediatamente o pedido de licença e gera mapas de distribuição e transmite a nova lista de membros para todo o cluster. Conseqüentemente, o cluster se ajusta rapidamente de acordo com os novos mapas de distribuição.
Falha abrupta do servidor
Há casos em que um servidor de cache pode cair abruptamente sem informar o coordenador, ou seja, uma falha de energia. Quando um servidor de cache fica inativo abruptamente, as conexões TCP são interrompidas entre o servidor de saída e outros servidores de cache. Eles tentam restabelecer a conexão TCP por um número configurável de tentativas com o servidor de saída. Esse mecanismo ajuda na recuperação de falhas temporárias de conexão e evita a declaração de morte incorreta de um servidor.
Depois que as novas tentativas de conexão terminam, o servidor de cache determinado conclui a morte do servidor de saída abrupta. Após a conclusão do óbito, os servidores de cache informam o coordenador. Embora o coordenador possa já ter descoberto a morte de um servidor de cache, as informações fornecidas por outros servidores de cache resultam em um rápido ajuste de associação caso o coordenador descubra a morte do servidor.
Seja qual for o caso, o coordenador gera os novos mapas de distribuição e transmite a nova lista de membros através dos servidores de cache existentes.
batida de coração
A detecção de uma conexão TCP interrompida depende do tráfego que passa pela conexão. Por exemplo, se o cluster de cache estiver ocupado e enviando solicitações entre diferentes servidores de cache, a quebra de conexão será detectada antecipadamente. No entanto, se o cluster de cache tiver atividade muito baixa, a detecção de quebra de conexão TCP poderá levar mais tempo.
Para evitar esse problema, o NCache cluster tem um built-in mecanismo de batimento cardíaco que pode ser habilitado. Quando o cluster está em um estado ocioso, batimento cardiaco mensagens são trocadas periodicamente entre servidores. Assim, o mecanismo de batimento cardíaco gera tráfego entre servidores de cache e ajuda na detecção precoce da morte de servidores que saem abruptamente.
Reclamar
NCache cluster oferece suporte à execução paralela de várias solicitações. O termo importunando refere-se à combinação de várias solicitações em uma única antes de enviá-las pela conexão TCP. Isso aumenta a taxa de transferência do cluster. Você pode configurar importunando e seu limiar através do arquivo de configuração do serviço.
Alertas de alteração de associação de cluster
A mudança na associação do cluster é uma atividade importante. Então, NCache fornece vários mecanismos para notificar os administradores de cache e aplicativos sobre alterações de associação.
Registros de cache: Registros de cache são o primeiro lugar para procurar alterações de associação para administradores de cache.
Visualizador de eventos: As notificações de entrada e saída de membros são logado no visualizador de eventos no Windows.
Alertas de E-mail: Você pode configurar alertas de e-mail de servidores entrando e saindo de eventos para um determinado cache. Sempre que ocorre uma alteração de adesão, um e-mail é gerado e enviado aos destinatários de e-mail cadastrados.
Notificações no nível do aplicativo: Os aplicativos clientes também podem registrar notificações de retorno de chamada sobre alterações de associação de cluster. Esses retornos de chamada são chamados sempre que ocorrer qualquer alteração na associação do cluster.
Veja também
Topologias de cache
Cache Local
Cliente de cache
Cache de cliente
Ponte para replicação WAN