Ponte para replicação geográfica
Para aplicativos de grande escala, caches distribuídos são usados para melhorar o desempenho, a confiabilidade e a escalabilidade de tempo de execução de seus aplicativos. Portanto, os caches distribuídos podem ser uma parte muito importante do seu plano de recuperação de desastres, desde desastres naturais até desastres internos de hardware ou falhas de software.
O melhor e mais utilizado plano de recuperação de desastres é a replicação de dados em tempo real para outros sites de backup. Assim, quando necessário, você pode redirecionar seus usuários ativos para o site de backup sem erros. No entanto, isso requer garantir que os caches ativo e de backup estejam sincronizados a qualquer momento. Se eles não estiverem sincronizados, isso poderá afetar os clientes de cache dos seus aplicativos.
NCache fornece replicação WAN por meio do recurso de ponte. Uma ponte é criada entre vários caches de cluster e os dados são replicados da origem para o outro site por meio dessa ponte.
Se você não apenas possui planos de recuperação de desastres, mas também deseja implantar seu aplicativo em regiões geograficamente separadas para clientes amplamente espalhados, a replicação de dados também resolverá o problema para você. Aqui você pode ter dois ou mais sites ativos, que atenderão usuários de regiões relacionadas e também poderão ser usados como backup de sites de outras regiões.
A replicação remota de dados é um componente crítico para qualquer plano para garantir proteção eficaz e eficiente de dados e recuperação rápida após uma interrupção grave. A replicação síncrona de dados é boa para o cluster internamente, mas seu impacto no desempenho torna-se uma consideração significativa quando os clusters de caches são separados geograficamente. A ponte foi projetada para cenários que envolvem replicação de dados de cache(s) no local para outros cache(s) no local/fora do local através da WAN para recuperação de desastres. Devido à replicação assíncrona, todos os clientes conectados ao(s) cache(s) ativo(s) têm a impressão de que as operações estão sendo executadas no cache ativo enquanto um backup completo é levado para o(s) outro(s) cache(s) sem problemas.
Quando uma operação é executada no cache de origem, ela é entregue de forma assíncrona até a ponte. Esta operação é então enfileirada em uma fila mantida por a Ponte. As operações da fila são transferidas para o cache de destino quando a ponte encontra o cache de destino disponível e pronto para aceitar operações. Com a ponte é garantido que:
- Não há degradação de desempenho.
- As operações são executadas na mesma sequência em que estavam no cache original.
- As operações não são perdidas em caso de falha de conexão.
Arquitetura de cache conectável: Os caches não têm conhecimento uns dos outros; eles apenas conheça a ponte e replique seus dados para a ponte. Devido a esta folga acoplamento, você pode configurar uma ponte entre vários caches, independentemente de seus topologia de cache. Você pode remover livremente caches configurados com uma ponte.
Integridade de dados: As operações executadas no cache de origem são enfileiradas pelo ponte mantendo a ordem real em que foram executadas na fonte cache. A ponte executa operações no cache de destino na mesma ordem. Conflitos são resolvidos no cache de destino. Dessa forma, os caches eventualmente se tornam consistentes.
Serviço de Ponte Dedicado: A ponte também é um serviço independente e dedicado como o serviço de cache, portanto suas operações de cache não serão afetadas se as operações da ponte forem atrasadas devido à latência na rede.
Configurando a ponte: Você pode configurar sua bridge no mesmo servidor onde seu cache de cluster reside ou você pode criá-lo em um nó de servidor separado. Então, você pode adicionar qualquer um dos seus caches de cluster à ponte e os dados serão replicados entre eles.
Recuperação de Desastres: Você pode configurar uma ponte entre um ativo e um passivo data center para recuperação de desastres.
Lidando com Clientes Dispersos Geograficamente: Você pode ter dois ou mais sites ativos que lidam com usuários de regiões relacionadas e também podem ser usados como backup de outros sites da região.
Replicação assíncrona: Para a replicação de WAN, a replicação assíncrona é usada para que as operações de cache não sofram em caso de atrasos nas operações de ponte.
Backup de fila: A ponte é uma fila clusterizada de vários nós na qual um nó está ativo e o outro é passivo, tendo um backup da fila ativa para evitar perda de dados na ponte.
Novas tentativas de conexão: A ponte também tenta replicar todas as operações, tentando novamente quando ocorre alguma falha na conexão.
Fila do replicador de ponte: O tamanho da fila do replicador de ponte está incluído no tamanho do cache. Se o cache não conseguir se conectar à ponte, as operações serão enfileiradas no cache até que o cache esteja cheio. Se o cache estiver cheio, ocorrerá a remoção dos itens do cache para liberar espaço para aumentar a fila da ponte.
caches: Você pode usar qualquer topologia para caches de cluster que farão parte da ponte. Você também pode usar caches de topologia diferentes em cada site em uma ponte. No entanto, é altamente recomendável que a mesma topologia seja usada em ambos os lados.
Modos de sincronização de cache para replicação geográfica
A NCache bridge pode ter vários caches conectados a ela e você pode fornecer qualquer um dos seguintes modos de sincronização ao cache para recuperação de desastres:
Cache Ativo:
Um cache ativo pode ser de qualquer topologia, onde todos os clientes se conectam e realizam operações de leitura e gravação que são replicadas via bridge para os demais caches conectados.Cache Passivo:
Um cache passivo pode ser de qualquer topologia, mas é recomendado que seja igual a um cache ativo. Entretanto, todas as operações executadas no cache ativo são replicadas no cache passivo. Os clientes podem conectar-se ao cache passivo e realizar operações de leitura e gravação, mas essas operações não são replicadas para o cache ativo. Modificações podem ser feitas no cache passivo, se necessário.Se o site ativo cair por qualquer motivo, você poderá redirecionar suas solicitações para o site passivo, tornando-o ativo. Seu site passivo se comportará como ativo e tratará todas as solicitações sem falhas.
Quando seu antigo site ativo estiver pronto e reiniciado, você poderá reformar sua configuração como estava antes. Torne ambos os sites ativos e isso transferirá todos os dados do antigo site passivo para o antigo site ativo. Quando todos os dados forem transferidos, você poderá fazer configurações no seu site passivo e redirecionar todas as solicitações para o site ativo.
No caso de comunicação entre dois caches ativos, os mesmos dados armazenados em cache podem ser atualizados em ambos os caches quase simultaneamente, o que produz um conflito. Para resolver este conflito, NCache fornece um configurável Solucionador de Conflitos que resolve conflitos de operação no tempo de ponte. Por padrão, a operação mais recente “vence” e é aplicada ao cache em caso de conflito.
Se algum site cair, você poderá redirecionar todas as solicitações para outros sites ativos. Quando o site inativo estiver ativo novamente, os dados serão transferidos do site já em execução para este site e poderão redirecionar a solicitação daquela região para este site.
Note
É recomendado que os caches tenham as mesmas configurações além da topologia para evitar problemas. Por exemplo, se a fonte de dados estiver configurada em um cache, você deverá configurá-la também no outro cache. Isso ocorre porque as mesmas especificações de operação de um cache de site serão replicadas para outro site.
Transferência de Estado
Uma transferência de estado pode ser acionada manualmente entre dois caches se você quiser sincronizar o estado do cache de origem com o cache de destino. Isso acontece através de uma ponte.
As operações de transferência de estado são enfileiradas no final do cache e assim que ele se conecta à ponte, ele começa a enviar suas operações para a ponte que são retransmitidas para o cache de destino. Depois que a transferência de estado entre os caches for iniciada, você não poderá iniciar outra transferência de estado - para garantir a estabilidade do sistema.
Caso 1: Cache na transferência de estado ocorre:
Se o Cache A e o Cache B tiverem uma transferência de estado em andamento, o Cache A ficará inativo e não retornará. Como a ponte está sob transferência de estado, qualquer outra solicitação de transferência de estado recebida pode ser rejeitada por causa disso. Para atender a isso, a ponte determina de forma inteligente se parou de receber as operações do Cache A após um intervalo especificado. Assim, essa transferência de estado é considerada corrompida e a ponte permite a solicitação de nova transferência de estado.
Caso 2: Cache e Bridge apresentam falha de rede, mas não desconectam:
Caso a conexão do cache e da ponte sofra uma falha de rede, de forma que fique parcialmente conectada, as filas de operação e transferência de estado ainda estarão intactas. Assim, a transferência de estado pode ser retomada, pois nenhuma operação foi perdida.
Filas de ponte
O cache A é o cache ativo, enquanto o cache B é passivo. O Cache A envia operações para o Cache B através da ponte, mas o Cache B fica inativo por algum tempo. Isso significa que a fila da ponte está sendo preenchida com as operações enviadas do Cache A, mas não está sendo retirada da fila porque o Cache B ficou inativo. Chegará um ponto em que a fila da ponte ficará completamente preenchida e não haverá espaço para armazenar mais operações. Conseqüentemente, ele diz ao Cache A para reter as operações no final até que tenha algum espaço. As operações são então enfileiradas apenas no final do cache. Suponhamos que o Cache B volte a funcionar e a fila do replicador de ponte comece a enviar as operações para ele, sendo, portanto, retirada da fila. Depois que uma quantidade configurável de espaço (20 MB por padrão) for liberada, a ponte informa ao Cache A que agora pode enviar suas operações na fila.
No entanto, caso a fila de cache seja preenchida e o despejo seja ativado, o cache despejará seus itens em cache, mas não as operações em fila. Isso evita a perda de operações.
Veja também
Topologias de cache
Cluster de cache
Cache Local
Cliente de cache
Cache de cliente