NCache é uma solução de otimização de desempenho que oferece escalabilidade e alta disponibilidade. Ele fornece várias topologias de cache para fornecer escalabilidade linear junto com consistência e confiabilidade de dados. Essas topologias são projetadas para atender a diferentes necessidades de cache de aplicativos que operam em um pequeno ambiente de cache de dois servidores para grandes clusters de cache com centenas de servidores de cache.
A seguir estão as características das topologias de cache que NCache oferece:
Cache replicado
A topologia garante a confiabilidade dos dados por meio da replicação de dados em vários servidores de cache. O Cache replicado é extremamente rápido e escalável para operações de leitura. Porém, não é muito escalável para operações de gravação, pois elas são síncronas para todos os servidores do cluster. A topologia destina-se a ambientes de cache menores em que o número de operações de leitura é maior do que as operações de gravação. A seguir está uma breve visão geral de como funciona a topologia de cache replicado.
Como funciona a topologia de cache replicado?
A topologia Replicated Cache oferece alta disponibilidade de dados e suporta inclusão e exclusão dinâmica de servidores sem interromper o cache existente.
Ao contrário das topologias de partição e réplica de partição, cada aplicativo cliente se conecta a apenas um nó de servidor com base em um algoritmo de balanceamento de carga determinado pelos servidores de cache. Quando o servidor conectado fica inativo, o aplicativo cliente se conecta ao próximo servidor da lista.
Topologia de Cache Espelhada
A Cache espelhado é um cluster de cache ativo/passivo de 2 nós projetado para ambientes de cache menores. A topologia oferece confiabilidade e disponibilidade de dados por meio de replicação/espelhamento assíncrono do nó ativo para o nó passivo.
Como funciona a topologia de cache espelhada?
Na topologia de cache espelhado, os nós clientes se conectam apenas ao nó servidor ativo no cluster, para todas as operações de leitura e gravação. Se o nó do servidor ativo ficar inativo, os aplicativos clientes se conectarão automaticamente ao nó anteriormente passivo. Esse suporte de failover garante que o cache espelhado esteja sempre funcionando. A topologia oferece espelhamento assíncrono para operações de gravação que ajudam a melhorar o desempenho do aplicativo, pois várias gravações são executadas como uma operação BULK no nó do servidor passivo.
Cache Particionado
É uma das topologias de cache mais rápidas e escaláveis oferecidas pela NCache. A topologia é igualmente eficiente para operações de leitura e gravação. Ele alcança escalabilidade linear adicionando servidores ao cluster. Abaixo está uma breve visão geral de como funciona a topologia de cache particionado.
Como funciona a topologia de cache particionado?
Na topologia de cache particionado, o cache é dividido em partes no tempo de execução com uma única partição para cada servidor de cache. Essas partições formam coletivamente um cache clusterizado com 1000 buckets, distribuídos igualmente em todas as partições. O cluster cria o Distribution Map que contém o mapeamento de buckets em diferentes partições. Esse mapa garante uma comunicação significativa entre os nós do cliente e do servidor.
A topologia também fornece alta disponibilidade de dados conectando todos os aplicativos clientes aos servidores de cache. Para que o aplicativo possa obter os dados necessários mesmo que o servidor conectado caia, solicitando os outros servidores.
Topologia de cache de réplica de partição
Esta é a topologia de cache mais popular em NCache. Uma vez que fornece aos usuários o melhor dos dois mundos, com escalabilidade linear e alta confiabilidade de dados. Essa topologia é quase tão escalável quanto a topologia particionada e fornece desempenho promissor e alta disponibilidade de dados com modos de replicação sincronizados e assincronizados. A seguir, uma breve visão geral de como essa topologia funciona.
Como funciona a topologia de cache de réplica de partição?
Juntamente com a criação de partições dinâmicas, a topologia também cria réplicas dinâmicas dessas partições em diferentes nós do servidor – que servem como backup quando há uma falha de conexão ou cenário de nó inativo. Em tais casos, NCache obtém dados do nó de réplica e redishomenageia isso. No entanto, essas réplicas limitam a escalabilidade do cluster, pois cada nó de servidor adicionado será dividido em partições ativas e de réplica.
A topologia oferece dois modos de replicação; sincronizados e assincronizados. Na replicação assíncrona, todas as réplicas serão criadas em segundo plano, resultando em zero atrasos de desempenho. Mas isso envolve uma pequena chance de perda de dados quando a réplica estiver inativa, pois os dados não chegarão lá. Para evitar tal perda, a topologia também oferece replicação sincronizada onde há criação de réplicas em tempo de execução e cada operação com falha na réplica também será considerada falha na partição. A topologia fornece conectividade total do servidor para garantir alta disponibilidade de dados.
Topologia de cache do cliente
No Cache de cliente topologia, o cache reside muito próximo ao seu aplicativo e permite que você armazene rapidamente os dados do cache distribuído. O cache do Cliente também pode ser considerado um “cache no topo do cache”. É adequado para aplicativos de leitura intensiva, mas se seu aplicativo tiver que executar um número igual de operações de leitura e gravação, funcionará mais lentamente, porque as operações de gravação exigirão a atualização dos dados em dois locais.
Embora o cache do cliente seja local, ele não é autônomo, pois está sempre sincronizado com o cache clusterizado. Essa sincronização garante que os dados no cache do cliente sejam sempre atualizados. A seguir, uma visão geral das principais características da topologia do Client Cache.
Como funciona a topologia de cache do cliente?
O Client Cache existe no modo InProc (dentro do seu processo) ou OutProc (local para o servidor web/app). Em ambos os casos, melhora o desempenho do aplicativo. O modo InProc permite que você armazene em cache objetos em seu “heap de aplicativo”, o que fornece a você “InProc Speed” outro cache distribuído. A melhor coisa sobre o Client Cache é que ele não envolve alteração de código em seu aplicativo. Em vez disso, basta conectá-lo por meio de uma alteração de configuração.
A topologia oferece sincronização de dados otimista e pessimista. A sincronização padrão no cache do Cliente é otimista, onde NCache O cliente assume que todos os dados que o Cache do Cliente possui são a cópia mais recente. Na sincronização pessimista, o Cache Client primeiro verifica o Clustered Cache se ele possui uma versão mais recente de um item armazenado em cache. Em caso afirmativo, o cliente o busca, coloca-o no cache do cliente e o retorna ao aplicativo cliente.
Conclusão
NCache oferece uma variedade de topologias de cache para atender às diferentes necessidades de cache de seus clientes. Todos eles são distribuídos, altamente escaláveis e confiáveis. Dependendo do tamanho dos seus dados, da natureza das operações que você precisa realizar e do número de transações que você precisa fazer, você pode escolher qualquer uma das topologias mencionadas. Para explorar mais sobre NCache topologias não hesite em baixar 60 dias de teste grátis NCache.