Clustering de cache dinâmico para alta disponibilidade

NCache tem clustering de cache dinâmico de autocorreção baseado em uma arquitetura ponto a ponto para fornecer 100% de tempo de atividade. Este é um cluster baseado em TCP onde não há nós mestre/escravo e, em vez disso, cada servidor no cluster é um peer. Isso permite adicionar ou remover qualquer servidor de cache em tempo de execução do cluster sem interromper o cache ou seu aplicativo.

Arquitetura ponto a ponto (autocura)

NCache cluster tem uma arquitetura ponto a ponto. Isso significa que não há nós Master/Slave e cada servidor é peer. Há um nó Coordenador de cluster que é o nó mais antigo do cluster. Se o nó Coordenador de Cluster ficar inativo, o próximo mais antigo se tornará automaticamente o coordenador.

O Cluster Coordinator gerencia todas as operações relacionadas ao cluster, incluindo a associação ao cluster quando os nós são adicionados ou removidos, mapa de distribuição para Cache Particionado / Cache de réplica de partição topologia e outras informações de configuração de cache. O Coordenador de Cluster também gerenciou a integridade do cluster e remove à força quaisquer servidores de cache que estejam parcialmente conectados a todos os outros servidores no cluster.

Cluster de cache dinâmico

Clustering dinâmico

NCache tem um arquitetura de cluster dinâmico. Isso significa que você pode adicionar ou remova qualquer servidor de cache do cluster sem interromper o cache ou os aplicativos. Sempre que você adiciona ou remove um servidor de cache, a Associação do Cluster é atualizada imediatamente em tempo de execução e propagada para todos os servidores do cluster, bem como para todos os clientes conectados ao cluster. Esta atualização e propagação em tempo de execução permite NCache estar sempre em funcionamento, mesmo quando tais alterações estão sendo feitas.

O clustering dinâmico permite que você faça o seguinte:

  • Adicionar/remover servidores de cache em tempo de execução: sem parar o cache ou seu aplicativo
  • Associação do cluster: é atualizado em tempo de execução e propagado para todos os servidores no cluster e todos os clientes conectados ao cluster.

Conexões de cliente dinâmicas

NCache também permite adicionar ou remover clientes de cache em tempo de execução sem parar o cache ou outros clientes. Quando você adiciona um cliente, esse cliente só precisa saber sobre qualquer servidor de cache no cluster ao qual se conectar. Depois de se conectar a esse servidor, ele recebe informações de associação de cluster e topologia de armazenamento em cache com base nas quais decide a quais outros servidores se conectar.

  • Adicionar/remover clientes em tempo de execução: sem parar o cache ou seu aplicativo.
  • Cache particionado/Cache de réplica de partição: o cliente se conecta a todas as partições em todos os servidores de cache (não às réplicas porque as partições se comunicam com suas réplicas). Isso permite que o cliente vá diretamente para onde os dados estão para leituras e gravações. E, se um novo servidor for adicionado ao cluster, o cliente receberá informações atualizadas sobre a associação do cluster e se conectará também a esse servidor de cache recém-adicionado.
  • Cache replicado: no caso de Cache replicado, o cliente apenas se conecta a um servidor de cache no cluster, mas com balanceamento de carga para garantir que todos os servidores de cache tenham o mesmo número de clientes. O cliente obtém as informações de balanceamento de carga desse servidor de cache e, com base nisso, se necessário, ele se reconecta ao servidor de cache apropriado. O cliente se conecta a apenas um servidor de cache porque cada servidor tem todo o cache, então todas as leituras e gravações são possíveis ali mesmo.
  • Cache espelhado: no caso de Cache espelhado, o cliente se conecta apenas ao nó ativo neste cluster de 2 nós. Se o cliente se conectar ao nó passivo, o nó passivo informará ao cliente sobre o nó ativo e o cliente se reconectará automaticamente ao nó ativo. Se o nó ativo ficar inativo e o nó passivo se tornar ativo, todos os clientes se conectarão automaticamente ao novo nó ativo.
Conexões de cliente dinâmicas

Configuração dinâmica

NCache também fornece configuração dinâmica do cache e dos clientes. O objetivo é permitir que você faça alterações posteriormente quando o cache estiver em execução sem interromper o cache ou seu aplicativo.

  • Propagar para todos os servidores e clientes em tempo de execução: isso inclui toda a configuração e suas alterações e também o Mapa de Distribuição.
  • Configuração de cache: quando uma configuração de cache é criada por meio de ferramentas administrativas, essas informações de configuração são copiadas para todos os servidores de cache conhecidos naquele momento. E qualquer novo servidor adicionado em tempo de execução recebe toda essa configuração de cache e a copia para seu disco local.
  • Alterações de configuração de aplicação a quente: você pode alterar algumas configurações de cache em tempo de execução por meio de um "Aplicação a quente"característica de NCache. Ao fazer isso, as informações de configuração atualizadas são propagadas para todos os servidores de cache em tempo de execução e salvas em seus discos. Uma parte desta informação também é enviada a todos os clientes que sejam relevantes para as suas necessidades.
  • Mapa de distribuição (cache particionado / de réplica de partição): isso é criado quando o cache é iniciado e, em seguida, é copiado para todos os servidores de cache e clientes de cache. Este Mapa de Distribuição contém informações sobre quais buckets (de um total de 1000 buckets no cache clusterizado) estão localizados em qual partição.

Failover de conexão no cluster

Todos os servidores de cache no cluster estão conectados uns aos outros por meio de TCP. E cada servidor de cache está conectado a todos os outros servidores de cache no cluster, incluindo quaisquer novos servidores adicionados em tempo de execução. NCache fornece várias maneiras de garantir que todas as conexões dentro do cluster sejam mantidas vivas apesar da quebra de conexão. A quebra de conexão geralmente ocorre devido a uma falha de rede devido a um roteador ou firewall ou a um problema com a placa de rede ou driver de rede.

  • Novas tentativas de conexão: se a conexão entre dois servidores de cache for interrompida, NCache servidor faz automaticamente várias tentativas para estabelecer esta conexão. Essas novas tentativas são feitas até que o período de “tempo limite” se esgote. Na maioria das situações, isso restabelece a conexão.
  • Batimentos cardíacos vivos: NCache também tem um recurso para que cada servidor de cache continue enviando alguns pequenos pacotes de dados como batimentos cardíacos para todos os outros servidores. Isso garante que, se houver um problema de quebra de soquete de rede, os servidores de cache saberão sobre ele e o corrigirão por meio de novas tentativas.
  • Servidores parcialmente conectados: apesar das tentativas, há momentos em que uma conexão não é restaurada dentro do período de tempo limite e um servidor de cache assume que um ou mais dos outros servidores de cache estão inativos. Então, ele continua trabalhando sem eles. Mas, na realidade, os outros servidores não estão inativos e, de fato, são vistos por alguns outros servidores no cluster. Isso é chamado de servidores parcialmente conectados. Quando isso acontece, o Coordenador de Cluster toma nota disso e remove à força o servidor "Parcialmente Conectado" do cluster. Ao fazer isso, o cluster fica íntegro novamente. E o servidor removido pode se juntar novamente ao cluster por meio de intervenção manual.

Failover de conexão com clientes

Todos os clientes de cache estão conectados a um ou mais servidores de cache no cluster por meio de TCP, dependendo das topologias de cache. Para Cache Particionado/Réplica de Partição, cada cliente está conectado a todos os servidores de cache. Para o Cache Replicado, cada cliente é conectado a apenas um dos servidores de cache, geralmente por meio de um algoritmo de balanceamento de carga usado pelos servidores de cache. E, para o Cache Espelhado, todos os clientes são conectados apenas ao Nó Ativo e só se conectam ao Nó Passivo quando o Nó Ativo fica inativo e o Nó Passivo se torna o Nó Ativo.

  • Novas tentativas de conexão: se uma conexão entre um cliente e os servidores de cache for interrompida, NCache cliente faz automaticamente vários tentativas de conexão para estabelecer essa conexão. Essas novas tentativas são feitas até que o período de "tempo limite" seja esgotado. Na maioria das situações, isso restabelece a conexão sem que o aplicativo cliente perceba. Se uma conexão não puder ser estabelecida, uma exceção será lançada para o aplicativo cliente para que ele possa tratá-la.
  • Batimentos cardíacos vivos: NCache também tem um recurso para que cada cliente continue enviando alguns pequenos pacotes de dados como batimento cardiaco para todos os servidores de cache aos quais está conectado. Isso garante que, se houver um problema de quebra de soquete de rede, o cliente saberá sobre ele e o corrigirá por meio de novas tentativas de conexão.
  • Clientes parcialmente conectados (cache particionado/de réplica de partição): apesar das tentativas, há momentos em que uma conexão não é restaurada dentro do período de tempo limite e um cliente de cache assume que não consegue acessar um ou mais dos outros servidores de cache, mesmo que eles não estejam inativos. Assim, no caso de Partitioned / Partition-Replica Cache, ele interage com outros servidores para ler ou gravar todos os dados, mesmo que seu Mapa de Distribuição informe que o servidor com o qual ele não pode falar possui os dados. Nesse caso, o outro servidor de cache atua como intermediário para realizar a operação com sucesso.
  • Desconexão com o servidor (cache replicado/espelhado): no caso de Cache Replicado, o cliente é conectado apenas a um servidor e, se essa conexão for interrompida, o cliente se conecta automaticamente a um dos outros servidores de cache. No caso de Mirrored Cache, se o cliente não conseguir se conectar ao Active Node, ele assume que está inativo e tenta se conectar ao Passive Node.

O que fazer a seguir?

© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.