NCache Arquitetura e demonstração de recuperação de cérebro dividido

NCache fornece um importante recurso de arquitetura de alta disponibilidade chamado Split Brain Detection and Recovery. Assista a este vídeo para saber mais sobre esse recurso e, em seguida, veja uma demonstração prática de NCache Recuperação do cérebro dividido.

Hoje vou falar sobre o NCache arquitetura de recuperação de cérebro dividido e também uma demonstração dela.

ncache-em-aplicativos-de-missão-crítica

NCache é um cache distribuído na memória para .NET e .NET Core formulários. Ele também suporta aplicativos Java e Node.js. NCache é usado em aplicativos de transações mais altas em que seu aplicativo está sendo executado em vários servidores de aplicativos. Esses podem ser seus aplicativos da Web, seus aplicativos de microsserviços ou quaisquer outros aplicativos de servidor. E, NCache fica entre a camada do aplicativo e seu banco de dados, seja um servidor SQL ou tipo Oracle de banco de dados relacional ou qualquer NoSQL database como CosmosDB ou MongoDB ou qualquer banco de dados ou dados de mainframe legado. E, NCache geralmente tem dois ou mais servidores de cache em um cluster e para este ambiente de aplicativo de missão crítica NCache fornece alta disponibilidade e, como parte dessa alta disponibilidade, há um recurso muito importante chamado detecção de cérebro dividido e recuperação de cérebro dividido sobre o qual falarei.

Arquitetura de cluster de cache dinâmico

Antes de entrar na divisão do cérebro, deixe-me rapidamente dar uma visão geral do NCache arquitetura de cluster de cache dinâmico.

cluster de cache dinâmico

Esta é uma arquitetura baseada em TCP onde cada servidor está conectado a todos os outros servidores através de um soquete TCP. É uma arquitetura peer-to-peer que é auto-recuperável. Auto-cura significa que ele se ajusta automaticamente a quaisquer alterações. E não há um único ponto de falha por causa dessa arquitetura ponto a ponto. Isso significa que não há mestre, não há escravo. Há um nó coordenador de cluster que geralmente é o nó mais antigo do cluster. Mas, se isso acontecer, o próximo nó mais antigo automaticamente se tornará seu sucessor. Um coordenador de cluster é responsável por gerenciar o cluster. Ele gerencia a associação do cluster. Gerencia, no caso de uma topologia Partição ou Réplica de Partição, gerencia o mapa de distribuição de dados. E também gerencia a integridade do cluster.

Agora, como eu disse, cada nó neste cluster está conectado a cada outro nó e mantém o controle dessa conexão. E, se essa conexão for interrompida, há um recurso de failover de conexão no cluster, que é esse nó que faz novas tentativas automaticamente, várias tentativas, que é uma opção configurável e cada nova tentativa tem um tempo limite. E também há um recurso de pulsação em que ele envia uma pulsação em um intervalo configurável para garantir que a conexão do soquete esteja ativa. A razão pela qual tudo isso é feito é porque, na maioria das situações, isso é suficiente para garantir que qualquer quebra de conexão seja restaurada ou recuperada automaticamente. E a razão para isso é porque os servidores de cache geralmente são implantados no mesmo data center, na verdade, na mesma sub-rede. Portanto, a conexão entre esses servidores de cache geralmente é muito confiável. E o cérebro dividido não acontece com muita frequência, mas às vezes acontece. E, quando isso acontecer, eu vou falar sobre como nós administramos isso.

De qualquer forma, essa arquitetura permite adicionar ou remover quaisquer servidores de cache em tempo de execução sem interromper o cache ou qualquer um de seus aplicativos. E, sempre que você adiciona um servidor de cache ao cluster, o coordenador do cluster atualiza o mapa de associação do cluster e o propaga dinamicamente para todos os servidores de cache, que então se propagam dinamicamente para todos os clientes. E, da mesma forma, se for uma topologia de partição ou réplica de partição, até mesmo o mapa de distribuição de dados será atualizado e você poderá acessar o NCache vídeo de arquitetura para mais detalhes sobre isso. Mas, uma partição ou topologia de réplica de partição tem 1000 buckets que é o mapa de distribuição e o mapa basicamente informa aos servidores quais buckets cada servidor possui e quando isso é enviado aos clientes os clientes sabem onde estão os dados. Então, este é o cluster de cache dinâmico.

Conexões de cliente dinâmicas

O segundo aspecto disso são as conexões dinâmicas do cliente, ou seja, assim como a conexão dentro do cluster é dinâmica, a conexão entre os clientes e o cluster também é dinâmica.

conexões de cliente dinâmico

E é uma conexão baseada em TCP muito leve. E, se essa conexão cair, há novamente um recurso de failover de conexão onde há novas tentativas e tempos limite. Além disso, há também o recurso de manter ativo, no qual o cliente continua enviando um tipo de pulsação de uma mensagem para o cluster para garantir que a conexão permaneça ativa. Na verdade, a probabilidade de quebra de conexão entre os clientes e o cluster é mais provável do que dentro do próprio cluster e o motivo é porque os clientes podem ser implantados em uma sub-rede separada, mesmo através do firewall. Então, tudo isso costuma aumentar as chances de quebra dos soquetes. Assim, sempre que isso acontece, os clientes podem se reconectar. Portanto, há um recurso de failover de conexão.

Toda essa arquitetura permite adicionar ou remover clientes em tempo de execução sem interromper o cache ou o aplicativo. E, sempre que um cliente é adicionado, o cliente obtém as informações de associação de cluster do cluster e, se for uma topologia de partição ou réplica de partição, ele também obtém o mapa de distribuição de dados que mostrei aqui do cluster. E, isso permite que o cliente saiba automaticamente quantos servidores estão no cluster, quem são eles. Assim, você pode se conectar a eles em apenas uma partição ou topologia de réplica de partição e também saber qual é o mapa de distribuição de dados.

Detecção de cérebro dividido

Portanto, considerando toda essa arquitetura, ainda há uma situação, apesar do fato de haver resiliência incorporada à conexão TCP por meio de tentativas e tempos limite, mas uma conexão pode realmente quebrar entre os servidores de cache por algum motivo. Pode ser um motivo de hardware. Pode ser um problema de driver de rede ou pode ser uma variedade de razões. Sempre que isso acontece, chamamos de rompimento de conexão.

detecção de cérebro dividido

Assim, na arquitetura de cluster de cache, cada nó no cluster continua detectando se há uma quebra de conexão, o que significa que, apesar das tentativas, a conexão ainda foi interrompida. Sempre que uma conexão é interrompida, cada nó assume que o outro nó morreu. Então, ele continua falando com todos os outros nós. Então, por exemplo, se você tem um servidor aqui, este nó está falando com todos os três. Então, este nó pode cair. Então, este nó pode ser capaz de falar com esses três. Quando isso acontecer, ele assumirá que esses três agora são um cluster de três e esse nó saiu. Então, quando algo assim acontece, digamos, um cluster de seis nós e eu vou apenas dar o exemplo de que as conexões se quebram de tal forma que três deles conseguem conversar entre si, esses dois são conseguem falar um com o outro e este não consegue falar com ninguém.

Então, quando isso acontece quando esses nós estão detectando tudo isso, todos eles assumem que, ok, eu sou um cluster de três porque posso falar com esses três nós e quando sou um cluster de três, um dos meus nodes vai se tornar um coordenador de cluster que já pode ser um coordenador de cluster porque se for o s1 que provavelmente era o mais antigo e que continua sendo o coordenador de cluster aqui. Mas, no caso de split two, s4 se torna o novo coordenador de cluster para este cluster. E, para a divisão 3, s6 sendo o único nó torna-se o coordenador também. Agora, nesta situação, esses nós sabem que esses três nós são capazes de conversar com esses três nós. Então, diz tudo bem, estou bem, os outros morreram. Este pensa a mesma coisa, ainda bem que os outros morreram. Estes pensam que eu sou bom os outros morreram.

Mas, eles também sabem disso, eu deveria ser um cluster de seis nós. Então, eles continuam tentando fazer ping em todos os outros nós para ver se eles vão voltar. E, o ping acontece por um intervalo configurável, após o qual eles simplesmente desistem e assumem que esses nós caíram permanentemente e eu sou o único que resta. Mas, dentro desse intervalo, digamos a conexão, a conexão de rede é restaurada e esses nós agora ficam visíveis um para o outro. Então, digamos que todos eles sejam capazes de ver uns aos outros neste exemplo. Então, agora eles percebem oh, nós criamos três divisões separadas, mas somos capazes de conversar uns com os outros.

Então, agora eles vão formalmente, NCache detectará formalmente uma divisão. Mesmo que a separação tenha acontecido no momento em que as conexões quebraram, NCache nós não sabiam que isso era uma divisão porque achavam que todos haviam morrido. Mas, se esses nós voltaram dentro desse intervalo especificado e os nós de cache dirão, ok, ocorreu uma divisão e agora é hora de fazer uma recuperação dividida. E, a razão pela qual isso é feito é porque seu aplicativo precisa de um cluster de cache saudável para continuar trabalhando e, embora a divisão não seja uma situação saudável, se você puder se recuperar automaticamente, em vez de sua equipe de administração ter que intervir em horários estranhos do dia ou da noite ou dos fins de semana. Então facilita sua vida NCache automaticamente volta a um estado íntegro, um cluster íntegro de seis. Mas, como isso acontece?

A primeira é que a divisão é detectada, como eu disse, é detectada apenas quando a conexão é restaurada e eles conseguem se ver. Até esse momento, eles assumem que os outros estão mortos. Ok? Agora que a divisão é detectada, agora a recuperação da divisão começa.

Recuperação do cérebro dividido

O que está envolvido na recuperação dividida?

recuperação do cérebro dividido

Portanto, na recuperação dividida, os dois maiores subgrupos ou as duas maiores divisões são mesclados primeiro. E, o cluster desta divisão e o cluster desta divisão, eles coordenam entre si para dizer ok, já que eu sou o menor dos dois e o tamanho aqui é baseado no número de nós em cada cluster. Poderia ter sido baseado na quantidade de dados. Poderia ter sido baseado na quantidade de atividade e número de clientes, mas escolhemos o número de nós porque essa era a situação mais provável. Porque, na maioria das situações, cada nó tem praticamente a mesma quantidade de dados devido à distribuição do mapa de hash, porque há mil buckets distribuídos uniformemente, porque há um recurso de balanceamento de dados no NCache que reequilibra os dados entre os nós se ele sair do equilíbrio.

Então, tudo isso significa que a situação mais provável é que cada nó tenha aproximadamente a mesma quantidade de dados. Assim, o maior número de nós significa a maior quantidade de dados. Então, isso se torna o mestre. E essa outra divisão tem que desistir de seus dados e se juntar a esse cluster como novos nós. Então, a primeira coisa que ela faz, ela desiste de seus clientes, ela conta. Então, esses dois servidores, esse coordenador diz ao seu outro nó que tudo bem, precisamos desistir dos clientes e dizer aos clientes para se conectarem a este cluster. Então, a primeira coisa que acontece é os clientes migrarem para o novo cluster porque esse é o íntegro, esse é o cluster mestre. Depois que os clientes foram movidos para cá, agora esse cluster desiste de seus dados e, essencialmente, você pode vê-lo reinicializar. Embora ele não seja reinicializado, ele apenas desiste de seus dados e se junta novamente a esse cluster como um nó íntegro.

E agora, como resultado, você tem um cluster de cinco nós que é uma fusão da divisão um e da divisão dois. Então, depois que isso é feito, ele vai para a próxima maior divisão e mescla isso com isso. Agora, no nosso caso, tínhamos apenas três divisões, mas você poderia ter mais de três e o algoritmo é começar com a maior e mesclar com a próxima maior e a próxima maior e tal e tal. Assim, você passa por quantas iterações precisar, mas a qualquer momento apenas duas divisões são mescladas. Então, enquanto essas duas divisões estão sendo mescladas, a terceira divisão é considerada independente, ela continuará fazendo suas operações até que a divisão seja mesclada e agora essa mesclagem acontecerá.

E, se houvesse uma quarta divisão que seria mesclada após esta também. Portanto, neste processo, observe que, dependendo de quantos nós tiveram que perder ou desistir de seus dados, você terá dados perdidos. Então, por exemplo, neste caso, três nós se tornam mestres, os outros três perdem seus dados. Mesmo em uma topologia de réplica de partição, você tem apenas uma réplica por partição. Então, você perderá dados e essa é apenas a parte dessa situação. No entanto, a outra parte dessa realidade é que, se para a situação de cache de dados, esses dados já estão chegando. Isso já existe no banco de dados. Portanto, você não está perdendo os dados, apenas precisa recarregá-los do banco de dados. Você pode recarregá-lo com base nos acertos e erros das operações do seu aplicativo. Você também pode recarregá-lo com base na leitura. Você também pode recarregá-lo com base no recurso de atualização de cache do NCache mas de qualquer forma esses dados não são perdidos.

No entanto, se os dados eram mais de um estado de sessão, quaisquer outros dados transitórios que não existiam em um armazenamento permanente, então esses dados foram perdidos. Então, nesse caso, você precisa recriar essas sessões. Mas, apesar dessa perda de dados ainda é uma situação melhor porque afinal você teve uma falha de rede. Então, isso tem consequências.

Na próxima versão do NCache, forneceremos um recurso de persistência onde você pode ter o cache persistido. E, um cache persistente significa que tudo o que estava no cache é mantido por conta própria, NCachearmazenamento de persistência do próprio e dessa forma em uma recuperação de cérebro dividido, você não perderá nem os dados transitórios, porque NCache está mantendo uma cópia dele em um armazenamento persistente. Mas, vou falar sobre isso quando esse recurso for tornado público. Então, neste momento eu vou apenas falar sobre isso.

Demonstração prática

Então, espero ter explicado essa arquitetura. Agora, vou dar uma demonstração de exatamente como você pode fazer isso em NCache. Então, eu tenho um exemplo onde eu tenho cinco servidores de cache e vou criar uma divisão entre esta e esta lista.

cluster-split-ips

Vou apenas criar essas duas divisões. A divisão um conterá esses dois servidores de cache e a divisão dois conterá esses dois servidores de cache. E, eu tenho um cliente Windows que vou usar que é onde estou sentado agora, que vou usar para fazer gerenciamento e monitoramento. E, eu tenho um cliente Linux que tenho duas prateleiras abertas para este cliente. Assim, posso ter dois aplicativos cliente separados iniciados a partir daí. Então, eu tenho esse cluster em execução agora. Não vou mostrar como adicionar esse cluster porque existem outros vídeos que mostram como fazer isso. Só vou mostrar a parte do cérebro dividido.

Monitorar a integridade e as estatísticas do cluster

Então, aqui, eu tenho um cluster de cinco nós. Eu tenho um cluster de cinco nós. Então, eu tenho um cluster de cinco nós que está bem aqui e está em execução. Ok, vou abrir as estatísticas e também vou abrir o monitor. Então, o que eu fiz foi abrir dois NCache janelas do gerenciador. Um está conectado ao .97 que está bem aqui, e o outro está conectado ao .82 bem aqui. Então, este é 97 que eu tenho o gerente real. Tenho o monitor e as estatísticas. E o segundo é o .82 e vou fazer isso de novo. É o mesmo cluster, mas estou apenas falando com um servidor diferente para gerenciamento. Estou falando com este servidor em comparação com este aqui. E, nisto, vou voltar a fazer estatísticas. Então, eu posso ver a atividade. Atualmente não há atividade porque ainda não tenho nenhum cliente em execução. E, eu vou abrir também o monitor.

cache de demonstração

Então, por que eu abri dois desses? Porque, eu quero monitorar, eu quero me conectar a este nó e quero me conectar a este nó. Então, que quando eu fizer a divisão eu possa ver. Porque, se eu estiver conectado a isso apenas quando a divisão acontecer, isso só mostrará que tenho apenas dois servidores restantes e eles não serão capazes de ver. Então, eu quero ver isso de ambas as perspectivas. Porque, eu vou apresentar a divisão através de uma regra de firewall, claro, no seu caso você não vai ter a regra de firewall. Você terá algum tipo de interrupção de rede. Então, vou introduzir ou simular isso por meio de uma regra de firewall. Então, agora estou conectado a este nó para gerenciamento e monitoramento e este nó para gerenciamento e monitoramento. E, eu vou agora vir aqui e eu vou... oh não, ainda não.

Também vou usar essa linha de comando para chamar Get-Caches-Server e falarei com .82 aqui.

linha de comando-82

Vou falar com 82 e dizer que me dá os detalhes de todos os caches que você tem. Então, .82 está dizendo, eu tenho um cache chamado democache no qual tenho cinco servidores; 82, 102, 122, 97 e 117. Um cluster de cinco servidores porque não há divisão no momento.

Vou para o outro servidor, o 97.

linha de comando-97

Vou perguntar a mesma coisa. Eu disse me dê o seu servidor. Tudo indica que eu tenho um cache de cinco servidores; 82, 102, 122, 97 e 117, atualmente. Então, são cinco clusters de servidores, sem Split, está tudo bem.

Simule o estresse usando o cmdlet Test-Stress Powershell

Está tudo funcionando Bem. Vou agora iniciar a aplicação. Eu tenho uma janela do PowerShell. Na verdade, esta é uma caixa Linux aqui. Vou mostrar o que aconteceu aqui. Vamos! Vou apenas abrir o PowerShell novamente. Me desculpe. Vou importar este módulo que é o NCache módulo de gestão. Você só precisa fazer isso no Linux. Você não precisa importar isso no Windows. Então direi democache Test-Stress. OK. Então, agora eu executei esta ferramenta. Eu vou fazer o mesmo aqui.

teste-estresse-demo-cache

Vou dizer democache Test-Stress. Eu tenho os dois. Agora observe, eu tenho atividade acontecendo. Eu tenho atividade acontecendo em todos os cinco nós, como você pode ver aqui, um dois três quatro cinco. Em todos os cinco nós tenho atividade acontecendo. Bem aqui, eu posso ver isso. Aqui também. Eu tenho cinco nós. Estou falando de 97 novamente, isso é 97 agora.

97 portas antes da divisão

Vamos ver se consigo ver o mesmo aqui também. Então, vou para 82 e vejo que tenho cinco atividades de nós acontecendo. A janela de estatísticas também está mostrando atividade.

82 portas antes da divisão

Ok! Então, tudo está funcionando bem. Normalmente, eu não abriria isso e o monitor do gerenciador de cache em dois servidores diferentes. A razão pela qual estou abrindo é porque preciso mostrar a divisão e quando a divisão acontece, preciso mostrar a vocês de ambos os lados da divisão o que está acontecendo.

Induzindo uma desconexão de rede

Ok! Agora que tenho tudo funcionando. Agora vou em frente e apresentar. Então, o que eu vou fazer é nessas duas caixas, eu vou usar a regra do firewall. Então, vou usar o firewall aqui. Vou usar um firewall aqui. Então, eu tenho essas duas regras já configuradas. Então, eu vou entrar. Estou logado no 97 aqui. Eu tenho uma regra aqui. Eu vou para o digamos que eu tenho uma regra de entrada. Isso é NCache, acabei de chamar NCache cérebro dividido. Esta regra está dizendo bloquear a conexão em quais portas, 78 a 7900, que é o cache.

inbound-regra-split-brain

NCache inicia um processo separado para cada cache. Portanto, esse processo de cache usa, por padrão, a porta 7800 a 7900. Embora seja configurável. Portanto, você pode estar usando uma porta diferente e, nesse caso, deve bloqueá-las se quiser simular isso. E a porta 8250 é a porta de gerenciamento.

escopo de configuração

O Scope está dizendo bloquear para 82, 102, 122. Então, estou dizendo a este, bloqueie essas três caixas de acessar você, é basicamente o que está dizendo.

Então, eu tenho essa porta. Vou dizer habilitar regra e tenho a mesma porta para uma regra de saída. É um... Então, está bloqueando a saída. E, agora eu vou para o 117 e bloquear isso também. Vou para 117. Mais uma vez, tenho uma entrada aqui. Mesma coisa aqui. Conexão de bloco, portas, 78 79, escopo, todas essas três caixas. OK. Então, eu vou dizer habilitar regra. Isso está ativado. Vou para a outra que direi habilitar a regra aqui.

habilitação de regra de firewall

Ok, agora o que eu fiz, eu liguei o firewall em todos eles.

Formação de dois subgrupos

Então, agora a divisão vai começar a acontecer. Embora não vá acontecer imediatamente e eu posso ver que vou perguntar primeiro ao 82 qual é isso, quantos servidores você tem no cache? Diz ok! Eu tenho 82, 102, 122, 97, 117. Então, ainda tem todos os cinco porque a divisão ainda não aconteceu. Ainda está passando pelas tentativas e todas as outras coisas. Vou perguntar ao outro, quantos servidores você tem? Ainda tem um, dois, três, quatro, cinco. Portanto, nenhuma divisão aconteceu ainda porque ainda haverá novas tentativas e tempos limite. Mas, a separação vai acontecer em breve.

Eu vou vir aqui e ver se está começando a ver algumas paradas. Então, estou falando com 97 aqui, 97 é o lado do cluster de dois nós.

split-iniciado-ocorrendo-em-97

Então, 97 está me dizendo que está apenas vendo... Então, não está vendo 102, 182, 82 está dizendo que estão parados, mas 97 e 117 estão funcionando bem. Ok! Vamos ver o que o outro lado está mostrando. O outro lado da divisão que era esse outro lado. Então, eu estava falando com o 97, agora vou falar com o 82, como você pode ver, este é o 82, aqui está o 82. Endereço IP… está dizendo ok! Dizendo 102, 122. Então, está dizendo que 122 está parcialmente conectado e 82 está totalmente conectado.

split-iniciado-ocorrendo-em-82

Ainda está passando por essa recuperação. Ele ainda está passando por essa fase de novas tentativas, onde 122 não é capaz de falar com alguns dos outros nós, mas vai seguir em frente e o que vai acontecer é, vou mostrar rapidamente…

Então, há um recurso aqui que eu falei sobre isso no cluster, se houver um nó parcialmente conectado, ele remove esse nó parcialmente conectado ou parcialmente conectado do cluster para criar um cluster íntegro. Então, isso é o que está acontecendo agora é que está removendo aquele outro cluster, aquele outro nó que é um nó parcialmente conectado. Agora, vamos voltar aqui novamente e ver o que a linha de comando diz. Estou falando com 82 que é, como eu disse, o cluster de três nós. Então, deve... vamos ver quantos tem? Opa aqui, está dizendo que 82 tem um, dois, três, quatro. Então, tem quatro. Ainda não tem cinco. Tem quatro. Ainda está passando pelo... vai forçar a remoção dos nós como estão e agora vou para o 97 que está bem aqui e direi ok quantos servidores você tem? E, 97 só tem dois.

Então, 97 já estabeleceu o fato de que não pode ver os outros três. Então, tudo bem, eu sou o único aglomerado aqui. Ele não sabe que há uma divisão porque, como eu disse, apenas a divisão, NCache só sabe sobre uma divisão quando esta conexão é restaurada. Então, agora ele só pensa que os outros nós morreram. Então, e está tudo bem, vou continuar comigo mesmo com esses dois nós. E, deixe-me ir para o outro aqui. Vamos ver o que tem. Oh, tudo bem! Agora também faltam três. Então, ele passou e também fez isso. Ele removeu o nó parcialmente desconectado para agora alcançar um cluster íntegro. Mas, é um cluster de apenas três nós, certo?

divisão ocorreu em ambos os servidores

Então, conversei com o servidor .82 aqui que está bem aqui. Perguntei quantos servidores você tem em seu cache, ele diz apenas três. Perguntei 97 quantos servidores você tem em seu cache, ele diz apenas dois.

Ok! Então, uma divisão aconteceu. Como parte da divisão, você verá que até agora o aplicativo não lançou nenhuma exceção. Isso significa que a divisão aconteceu sem perda de dados. Isso provavelmente pode ser que o aplicativo não tenha encontrado, mas em alguns casos, você encontrará algumas exceções.

Detecção e recuperação de cérebro dividido na restauração da rede

Ok! Agora, o próximo passo que vou fazer é seguir em frente e chutar o cérebro dividido. Então, quero agora restaurar a conexão para que o cérebro dividido seja detectado e uma recuperação seja iniciada. Mas, antes de fazer isso, vou mostrar que na minha configuração de cache se eu for nas configurações de cluster que é o primeiro tópico aqui, se eu for até o final, já habilitei a recuperação automática para cérebro dividido.

auto-recuperação-split-brain

Então, se você habilitar a recuperação automática, isso significa NCache irá se recuperar automaticamente de um cérebro dividido assim que detectar o cérebro dividido. E, como mencionei, ele detecta o cérebro dividido quando a conexão é restaurada.

Então, vamos agora voltar para 97 e isso e desligar este firewall. E, eu vou fazer em 97 primeiro. Eu vou vir aqui e vou dizer, desabilite essa regra e eu venho aqui e vou dizer que desabilite essa regra.

desativar-firewall-97

Ok! ja fiz isso agora vou vir aqui a 117 e direi que vamos desativar a regra aqui também. Desative a regra. Desative a regra. Ok! Agora desativei as regras. Então, este firewall está desligado, o que significa que agora eles podem ver, ou em breve, eles poderão ver um ao outro. Não vai acontecer instantaneamente, mas eles poderão se ver. E, como você pode ver…

Então, eu vou realmente vir aqui de novo e vou dizer me mostre seu cache. Estou de novo, vou manter isso na minha frente e direi que estou falando com 82 agora e digo me mostre seus caches, 82 diz, eu tenho 82, 102, 122. Então, então até agora ainda tem três caches. Não está vendo os outros dois. Eu vou para o outro e eu vou dizer me mostre seus caches. Está dizendo 97 e 117. Até agora, a recuperação do cérebro dividido não começou, mas vai. Será porque leva um pouco de tempo para que as novas tentativas aconteçam. Como você pode ver aqui, já estou vendo um dois três quatro cinco servidores. E aqui um dois três quatro cinco servidores.

split-brain-recovery-bem-sucedido-em-ncache-Gerente

Mas, novamente, vou depender da minha boa e velha ferramenta PowerShell de linha de comando para me dizer. Vou fazer essa chamada de caches. Vou falar com 82 e dizer me mostre quantos servidores você tem. Ainda tem um dois três. E, eu digo, mostre-me quantos servidores você tem aqui. Ainda tem um dois. Então, novamente, um dois e um dois três. Então, nenhuma conexão foi. Portanto, o cérebro dividido ainda não foi recuperado. E é por isso que ainda vai parcialmente conectado, parcialmente conectado, e os clientes continuam trabalhando.

Ok! deixe-me ir novamente. Vamos fazer outro. Ainda não está feito. Ok! Vá aqui. 97.. Vamos! Ok! Agora, está começando a ver o outro nó. 82, 102, 122 e também 97 aqui. Mas, ainda é parcial. Ele precisa ver dois desses e você deve ver tanto a partição quanto a réplica e é por isso que provavelmente não é capaz de falar com 97 ainda porque… Ok! Agora, 82, 102, 122, 97, novamente cinco nós são restaurados aqui. Todos os cinco.

5-servidores-restaurado-powershell-82-port

Deixe-me ir para este. Este. De alguma forma... Vamos lá! Eu vou mudar isso aqui. Então, em vez de 82, direi 97 aqui. Agora faça isso. Verei que 97 também está me mostrando cinco nós, um dois três quatro cinco. OK. Assim, todos os cinco nós são reconectados.

5-servidores-restaurado-powershell-97-port

Eu vou vir aqui. Deixe-me apenas reiniciar este monitor. Eu virei aqui novamente. Este cache, direi estatísticas. Vejo que todos os cinco estão funcionando e os clientes estão conversando com eles. Portanto, novamente o fato de o cliente estar falando com todos os cinco significa que as conexões do cliente também são restauradas automaticamente. E, o monitor também vai me mostrar todos os cinco aqui. Então, como você pode ver totalmente conectado, todos os cinco nós.

janela-estatísticas-mostrando-todos-5-conectados-para-97

Ok! Agora deixe-me vir aqui para o outro. Eu fui para o outro? Este. Ok! Eu vou dizer estatísticas ok. Todos os cinco estão. Estou falando com todos os cinco aqui, como você pode ver, a atividade está acontecendo em todos eles e vou dizer monitore todos os cinco estão acontecendo aqui.

janela-estatísticas-mostrando-todos-5-conectados-para-82

Conclusão

Então, passamos de ter um cluster íntegro para ter uma divisão e ter novamente um cluster íntegro. E podemos ver que, aqui também, temos um cluster de cinco nós. Então, isso é praticamente o fim desta demonstração. Por favor, vá em frente e brinque com NCache e veja que, com a recuperação de cérebro dividido, você tem essa capacidade adicional de alta disponibilidade.

O que fazer a seguir?

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