Um pesadelo comum entre desenvolvedores e arquitetos de software é o travamento de seu único servidor web/fonte de dados, perdendo milhares de clientes, aplicativos e dados preciosos conectados. Com a ajuda de uma camada de cache distribuída com balanceamento de carga, como NCache você pode tornar sua camada de aplicativo altamente escalável e disponível. Com o aumento da carga de transações, você pode adicionar mais servidores. A arquitetura distribuída garante que não haja um único ponto de falha.
NCache é uma memória distribuído armazenamento de dados que fornece desempenho ideal para seus aplicativos. o NCache cluster é auto-cura e dinâmico. Ele contém nós que equilibram automaticamente a carga entre si sem intervenção do usuário em cada atualização do cluster.
NCache Adicionar ao carrinho NCache Docs Réplica-Particionada
Este blog oferece um tour rápido de como NCache ofertas escalabilidade e desempenho, mantendo 100% de tempo de atividade. Para entendimento NCache arquitetura em detalhes, você pode conferir este vídeo:
Mantendo a alta disponibilidade em NCache Agrupar
NCacheA arquitetura distribuída e replicada garante 100% uptime mesmo se um nó cair inesperadamente. NCacheA arquitetura ponto a ponto e a descoberta em tempo de execução de clusters e clientes sem intervenção do usuário garantem essa alta disponibilidade. Além disso, NCache fornece suporte a failover inteligente, para que o cluster permaneça sempre disponível para todos os clientes conectados.
Arquitetura ponto a ponto
NCache fornece cluster de cache dinâmico com uma arquitetura ponto a ponto onde não há um único ponto de falha. Um cluster de cache tem servidores interconectados e contém um coordenador (nó de servidor mais antigo) que gerencia as associações ao cluster. Se o coordenador ficar inativo, a função passará para o próximo servidor mais sênior no cluster. Ele garante nenhum ponto único de falha no gerenciamento de associação de cluster.
Descoberta de tempo de execução no cluster e nos clientes
Grupo:
Depois que um servidor é iniciado, ele deve conhecer pelo menos um outro servidor no cluster. O servidor contém uma lista de vários servidores de cache e tenta se conectar a qualquer um deles. Uma vez conectado a um servidor, ele pergunta a esse servidor sobre o coordenador do cluster e pede ao coordenador para adicioná-lo à lista de membros do cluster.
O coordenador adiciona esse novo servidor ao cluster em tempo de execução e informa aos outros servidores conectados que um novo servidor ingressou no cluster. Ele também informa ao novo servidor sobre todos os membros do cluster. O novo servidor estabelece uma conexão TCP com todos os servidores do cluster.
Cliente:
Depois que o cliente se conecta a um servidor de cache, ele recebe as seguintes informações desse servidor em tempo de execução:
- Informações de associação do cluster
- Cache de informações de topologia
- Mapa de distribuição de dados
O cliente usa essas informações para ajudar a determinar a quais servidores de cache se conectar e como acessar o cache com base na topologia de cache.
Descoberta de tempo de execução no cluster e nos clientes
In NCache, a descoberta do cluster e do cliente durante o tempo de execução ocorre das seguintes maneiras:
Grupo:
Como um cluster é uma coleção de nós, assim que um servidor é iniciado, ele deve conhecer pelo menos um outro servidor no cluster. O servidor contém uma lista de vários servidores de cache e tenta se conectar a qualquer um deles. Uma vez conectado a um servidor, ele pergunta a esse servidor sobre o coordenador do cluster e solicita ao nó coordenador para adicioná-lo à lista de membros do cluster.
O coordenador adiciona esse novo servidor ao cluster em tempo de execução e informa aos outros servidores conectados que um novo servidor ingressou no cluster. Ele também atualiza o novo servidor sobre todos os membros do cluster. O novo servidor então estabelece um Conexão TCP com todos os servidores do cluster.
Cliente:
Depois que o cliente se conecta a um servidor de cache, ele recebe as seguintes informações desse servidor em tempo de execução:
- Informações de associação do cluster
- Cache de informações de topologia
- Mapa de distribuição de dados
O cliente usa essas informações para ajudar a determinar a quais servidores de cache se conectar e como acessar o cache com base no topologia de cache.
Suporte a failover
à medida que o NCache cluster é auto-recuperável, ele fornece suporte a failover dentro do cluster e para os clientes se um servidor for adicionado ou removido em tempo de execução.
- Suporte a failover de cluster: O cluster se reorganiza automaticamente atualizando suas conexões com os outros servidores a cada atualização do cluster.
- Suporte a failover do cliente: Os clientes se conectam automaticamente a outro servidor no cluster se houver desconexão do servidor. Da mesma forma, se houver a adição de um servidor, os clientes se atualizam e podem se conectar ao novo servidor.
Para obter mais detalhes sobre recursos de alta disponibilidade, acesse nosso blog Alta disponibilidade prometida com NCache.
Topologias de cache Clustering dinâmico de autocura NCache Arquitetura
Modo de Manutenção
NCache suporta o modo de manutenção para o seu Particionado de Réplica topologia. Embora a própria topologia POR garanta alta disponibilidade com uma réplica de cada nó. No entanto, caso você precise executar um upgrade ou fazer uma atualização de patch no cache, será necessário interromper cada nó do cluster um por um. No entanto, parar um nó de cache aciona um transferência de estado dentro de todo o cluster de cache, resultando em uso excessivo de recursos como rede e CPU, impactando drasticamente a disponibilidade do cache.
A NCache o modo de manutenção resolve esse problema oferecendo a opção de interromper um nó para manutenção. Uma vez que um nó é parou, ele informa ao cluster para interromper qualquer transferência de estado por um período de tempo limite específico. Quando um cluster passa por manutenção, a réplica desse nó atuará como o nó ativo e atenderá as solicitações de dados do cliente. Depois que o próprio nó se junta novamente ao cluster, ele solicita dados de seu nó de réplica. Essencialmente, o modo de manutenção economiza para seu cluster o custo de um processo caro de transferência de estado.
NCache Adicionar ao carrinho NCache Docs Modo de Manutenção NCache Docs
Alcançando a escalabilidade de tempo de execução de NCache Agrupar
Como NCache armazena seus dados junto com o fornecimento de recursos avançados como Mensagens do Pub/Sub e execução de consulta, você pode esperar executar em memória ou limite computacional se todas as suas transações estiverem em apenas um servidor. Isso é por que NCache fornece dimensionamento linear contínuo para lidar com solicitações crescentes por segundo e armazenar mais dados.
NCache Web Manager torna o dimensionamento de seu ambiente tão simples quanto clicar em botões e voila, você tem um cluster dinâmico com nós adicionais sem interromper seus clientes. O GIF a seguir mostra como é simples dimensionar seu cluster dinamicamente em NCache:
Operações paralelas
NCache tem um cluster dinâmico que permite que os clientes recebam os dados necessários em apenas um salto porque os clientes são tratados de forma eficaz dentro do cluster sem qualquer intervenção do usuário. Além disso, as operações do cliente são enviadas e executadas em paralelo em todos os nós. Os resultados de cada nó são compilados em um único resultado, tornando as operações escaláveis. Também melhora o desempenho das transações devido ao paralelismo.
Pipelining
Com o canalização, NCache reduz a sobrecarga da rede combinando várias operações de cliente enviadas em uma chamada TCP para o servidor. Da mesma forma, o cliente recebe os resultados da operação em um único bloco em uma chamada. Ajuda a dimensionar as operações.
Pooling de objetos
Com o agrupamento de objetos, o NCache servidor agrupa os objetos e os reutiliza para evitar invocar o Garbage Collector repetidamente. A coleta de lixo é uma tarefa de alto desempenho, portanto, diminuir a necessidade de chamar o GC resulta em maior desempenho e escalabilidade do seu ambiente.
Cache de cliente
NCache ofertas cache do cliente, um cache no topo do cache, que reside onde o aplicativo reside. Como o cache do cliente fica entre o aplicativo e o cache clusterizado, ele é sincronizado automaticamente e aumenta o desempenho, especialmente para operações de leitura. O uso de um cache de cliente reduz a sobrecarga da rede.
Para mais detalhes, você pode conferir o blog: Arquitetura de Escalabilidade em NCache - Introspecção
NCache Adicionar ao carrinho Operações do lado do cliente Canalização em NCache
Conclusão
NCache, sendo um nativo .NET cache distribuído solução, se encaixa perfeitamente em sua pilha de aplicativos. Ele aumenta o desempenho tremendamente por causa do pool de objetos, operações paralelas e o cache do cliente que fica próximo ao seu aplicativo. Além de ser escalável, também mantém 100% de tempo de atividade em todos os momentos para garantir a alta disponibilidade de dados e clientes.
NCache Adicionar ao carrinho Baixar NCache Comparação de edições