Replicación geográfica en múltiples centros de datos
NCache le proporciona replicación geográfica como un plan de recuperación ante desastres a través de la función Bridge. Se crea un puente entre múltiples cachés de clúster y los datos se replican desde el origen al otro sitio a través de ese puente, sin interrumpir las operaciones de los clientes.
Para obtener más detalles conceptuales y de comportamiento del puente, puede consultar Arquitectura del puente en la Guía del administrador.
En el puente, puede haber más de un caché de sitio activo y las operaciones de caché pueden ser simultáneas. Es posible que el cliente conectado con la caché de un sitio activo agregue algunas claves y el otro nodo activo realice la misma operación de clave. En tal situación entra en juego el solucionador de conflictos del puente. Resuelve los conflictos y decide qué clave aplicar en el caché según las reglas definidas.
Si el usuario no ha configurado ninguna regla de resolución de conflictos, entonces NCache utiliza la regla de resolución predeterminada. En la regla predeterminada, se agrega un período de tiempo con cada operación realizada en el caché y se mantiene la última operación. Se realiza una comprobación de la versión del elemento de puente. Si tiene una marca de tiempo más reciente o si la versión es la última o la misma, la reemplaza con la nueva entrada y, en caso de que sea antigua, conserva la entrada anterior.
Requisitos previos de replicación geográfica para centros de datos
Antes de utilizar la replicación geográfica con NCache Asegúrese de que se cumplan los siguientes requisitos previos:
- Para obtener información sobre los requisitos previos estándar necesarios para trabajar con todos NCache funciones del lado del servidor, consulte la página dada en Requisitos previos de la API del lado del servidor.
- Para obtener detalles de la API, consulte: Dolor, Artículo de caché, IBridgeConflictResolver, Versión del elemento puente.
- Este debería ser un proyecto de biblioteca de clases usando Microsoft Visual Studio.
- Asegúrese de configurar puente usando el NCache Centro de gestión después de implementar esta clase.
Ejemplo de implementación de la interfaz IBridgeConflictResolver
La siguiente implementación de ejemplo de Conflict Resolver contiene lógica para resolver cualquier conflicto que pueda ocurrir al replicar una operación desde el puente para una clave que ya existe en el caché. Cada vez que ocurre algún conflicto, el caché llama BridgeConflictResolution
para decidir qué operación aplicar en el caché dependiendo de las reglas definidas en él. Se necesitan dos parámetros/entradas, ambos son del mismo ProviderBridgeItem
tipo. ProviderBridgeItem
contiene los siguientes 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
}
}
Vea también
Dependencias de caché personalizadas
Procesador de entrada
Configuración de Bridge para replicación WAN