Replicação geográfica em vários data centers
NCache fornece replicação geográfica como um plano de recuperação de desastres por meio do recurso Bridge. Uma ponte é criada entre vários caches de cluster e os dados são replicados da origem para o outro site através dessa ponte, sem interromper as operações dos clientes.
Para mais detalhes conceituais e comportamentais da ponte, você pode consultar Arquitetura da ponte no Guia do Administrador.
No bridge, pode haver mais de um cache de site ativo e as operações de cache podem ser simultâneas. É possível que o cliente conectado a um cache do site ativo adicione algumas chaves e a mesma operação de chave seja executada pelo outro nó ativo. Em tal situação, a ponte de resolução de conflitos entra em ação. Resolve os conflitos e decide qual chave aplicar no cache dependendo das regras definidas.
Se o usuário não configurou nenhuma regra de resolução de conflitos, NCache usa a regra de resolução padrão. Na regra padrão, um intervalo de tempo é adicionado a cada operação realizada no cache e mantém a operação mais recente. Uma verificação é executada na versão do item de ponte. Se tiver um carimbo de hora mais recente ou se a versão for a mais recente ou a mesma, substitui-a pela nova entrada e, no caso de antiga, mantém a entrada antiga.
Pré-requisitos de replicação geográfica para datacenters
Antes de usar a replicação geográfica com NCache garantir que os seguintes rerequisitos sejam atendidos:
- Para aprender sobre os pré-requisitos padrão necessários para trabalhar com todos os NCache recursos do lado do servidor, consulte a página fornecida em Pré-requisitos da API do lado do servidor.
- Para obter detalhes da API, consulte: ICache, Item de cache, IBridgeResolver, BridgeItemVersão.
- Este deve ser um projeto de biblioteca de classes usando o Microsoft Visual Studio.
- Tenha certeza de configurar ponte usando o NCache Management Center após implementar esta classe.
Exemplo de implementação da interface IbridgeConflictResolver
O exemplo de implementação do Resolvedor de Conflitos a seguir contém lógica para resolver qualquer conflito que possa ocorrer durante a replicação de uma operação da ponte para uma chave que já existe no cache. Sempre que ocorre algum conflito, o cache chama BridgeConflictResolution
para decidir qual operação aplicar no cache dependendo das regras nele definidas. São necessários dois parâmetros/entradas, ambos do tipo ProviderBridgeItem
tipo. ProviderBridgeItem
contém os seguintes parâmetros:
public class Resolver : IBridgeConflictResolver
{
public void Init(System.Collections.IDictionary parameters)
{
// Initialize parameters
}
public ConflictResolution Resolve(ProviderBridgeItem oldEntry, ProviderBridgeItem newEntry)
{
var conflictResolution = new ConflictResolution();
switch (oldEntry.BridgeItemVersion)
{
case BridgeItemVersion.OLD:
{
conflictResolution.ResolutionAction = ResolutionAction.ReplaceWithNewEntry;
}
break;
case BridgeItemVersion.LATEST:
{
conflictResolution.ResolutionAction = ResolutionAction.KeepOldEntry;
}
break;
case BridgeItemVersion.SAME:
{
if (oldEntry.OpCode == BridgeItemOpCodes.Remove)
{
conflictResolution.ResolutionAction = ResolutionAction.ReplaceWithNewEntry;
}
else
{
conflictResolution.ResolutionAction = ResolutionAction.KeepOldEntry;
}
}
break;
}
return conflictResolution;
// Configure this implementation on cache
}
public void Dispose()
{
// Dispose resources
}
}
Veja também
Dependências de cache personalizadas
Processador de entrada
Configurando o Bridge para Replicação WAN