NCache é um cache distribuído na memória para.NET/.NET Core, Java, Python, NodeJS e aplicativos Scala, é extremamente rápido e escalável. Ele é utilizado em configurações de produção para aplicativos de missão crítica, muitos dos quais também são interativos com o usuário. Em tais aplicações, a alta disponibilidade é crucial. E através de uma variedade de recursos, NCache faz um ótimo trabalho em satisfazer essas necessidades.
Um desses recursos é o Live Upgrade, que permite atualizar NCache para uma versão mais recente sem causar interrupções em seu aplicativo por meio de um ponte. NCache fornece uma Topologia de ponte para replicação de WAN que serve como uma ponte entre dois clusters de cache que mantêm a versão mais recente do seu cluster. No entanto, o recurso Live Upgrade está disponível apenas para NCache Enterprise Edition.
Por que atualizar para NCache versões mais novas
Se você estiver usando uma versão mais antiga do NCache, recomendamos fortemente que você atualize para a versão mais recente para colher os benefícios de todos os recursos e aprimoramentos mais recentes. Para ver todos os detalhes desses recursos e melhorias trazidas por NCache 5.3 SP1, você pode ler o notas de lançamento of NCache 5.3º SP1.
Atualização ao vivo de NCache com perda de dados insignificante
O tempo que leva para atualizar manualmente o software reduz bastante por meio da atualização ao vivo. Você pode usar o Atualização ao vivo para clonar dados de seu cache atualmente em operação (conhecido como cache de origem) para o cache mais recente (cache de destino) enquanto os caches ainda estão em execução.
Devido à natureza assíncrona da replicação de dados, todos os clientes conectados ao cache de origem percebem a atividade no cache de origem, mesmo que uma cópia completa seja feita sem problemas no cache de destino. A configuração do cache de origem, por sua vez, continua funcionando perfeitamente e não é afetada pela alteração.
A figura mostrada acima exibe um cluster de 4 nós com uma versão mais antiga do NCache instalado. Primeiro, você para os nós 3 e 4 e instala o último NCache versão nesses nós. Em seguida, crie um cache de 2 nós no recém- NCache versão instalada da máquina (nós 3 e 4). Neste ponto, temos um total de dois caches com 2 nós cada. Vamos chamá-los de cache de origem (antigo NCache cache de versão instalada) e cache de destino (recentemente NCache cache instalado da versão). Em seguida, você precisa criar uma ponte entre esses dois caches para transferir dados do cache de origem para o cache de destino. Interrompa os nós do cache de origem e instale o último NCache versão nele. Em seguida, adicione os nós 1 e 2 ao cache de destino para torná-lo um cluster de 4 nós.
Idealmente, é melhor ter um cluster de 4 nós, para que você possa dividir os dados entre os dois nós do servidor. A divisão dos nós do cluster é baseada no fato de que essa divisão não causa perda de dados de forma alguma. Qualquer divisão de cluster que você escolher, deve ser capaz de manter dados iguais em seu cluster dividido. Se você tiver um cluster de 2 nós, não recomendamos dividi-los. Em vez disso, tenha um cluster temporário de 2 nós com a versão mais recente do NCache instalado. Depois que os 2 nós existentes ingressarem no novo cluster, você poderá remover esses nós temporários.
Como atualizar para NCache Versão ao vivo
Por exemplo, temos um cluster de 4 nós, conforme explicado no diagrama da seção anterior. Retire dois nós (3 e 4) e instale a versão mais recente do NCache neles (cache de destino). Os outros dois nós (1 e 2) têm uma versão antiga NCache instalado (cache de origem). Ambos os caches são idênticos em termos de nome e configuração. Esta é uma configuração ativa-passiva.
-
- Crie uma nova ponte entre esses dois clusters, conforme explicado no Criar ponte Disputas de Comerciais.
- No … marcas de ponte.ncconf no nó de ponte, adicione manualmente o cache de destino da seguinte maneira:
1234567891011<configuration><bridge-config … ><cache cache-id="demoCache.WestCoast" status="active" servers-list="20.200.20.43" bulk-operation-size="500"enable-compression="False" connection-retry-interval="3" heart-beat-enabled="True" replicator-virtual-queue-size="2048MB" is-connected="True" is-master="False"/><cache cache-id="demoCache.EastCoast" status="active" servers-list="20.200.20.40" bulk-operation-size="500"enable-compression="False" connection-retry-interval="3" heart-beat-enabled="True" replicator-virtual-queue-size="2048MB" is-connected="True" is-master="False"/></bridge-config></configuration> - Após a modificação do bridge.ncconf, reinicie o serviço de ponte usando o seguinte cmdlet do PowerShell.
1Restart-Service NBridgeSvc - Forneça o cache de origem e o cache de destino como entradas para o comando Start-BridgeStateTransfer do PowerShell para iniciar a transferência de estado.
12Start-BridgeStateTransfer -Server 20.200.20.43 -Name demoBridge -SourceCache demoCache.WestCoast -TargetCachedemoCache.EastCoast - Os dados serão replicados de forma assíncrona do cluster antigo (ativo) para o cluster mais recente (passivo).
- Depois que os dois caches estiverem totalmente sincronizados, você precisará interromper os clientes e reconectá-los ao cluster mais recente. Para fazer isso, altere o endereço IP do(s) servidor(es) de cache de origem para o endereço IP do servidor de cache de destino em cliente.ncconf de cada nó cliente e reconecte os clientes.
- Remova a ponte.
- Após os clientes terem sido conectados com sucesso ao cluster mais novo, interrompa o cluster mais antigo e instale a versão mais recente nele. Adicione esses servidores ao cluster de cache com a versão mais recente após atualizar o NCache software em todos os seus servidores.
- Una os nós 1 e 2 ao cluster mais recente, um após o outro.
Conclusão
NCache permite que seus usuários façam atualizações contínuas para suas versões mais recentes com perda de dados insignificante. Os usuários não precisam lidar com o problema de mudar de um NCache versão para a próxima, seja a atualização ao vivo ou o modo offline NCache atualização de versão. Para mais detalhes sobre NCache, por favor, veja NCache docs.