Su aplicación puede implementarse en varios centros de datos, ya sea para la recuperación ante desastres o para el equilibrio de carga geográfica del tráfico. Si su aplicación es de alto tráfico, debe usar un caché distribuido. En estas situaciones, debe asegurarse de que su caché distribuida pueda realizar la replicación WAN para una alta disponibilidad de datos en caso de desastre.
NCache proporciona Bridge para manejar la replicación WAN de cachés distribuidos. Forma un puente entre los centros de datos distribuidos y realiza una replicación asíncrona de datos para que no haya degradación del rendimiento. Además, el puente en sí es un grupo de dos servidores con fines de alta disponibilidad.
Puede tener un centro de datos activo y otro pasivo principalmente para fines de recuperación ante desastres. En esta configuración, un sitio activo contiene el puente y los cachés, mientras que el pasivo contiene solo los cachés. El sitio activo replica asíncronamente los datos a través del puente al sitio pasivo, que actúa como respaldo en caso de desastre.
Puede tener dos centros de datos activos para una combinación de equilibrio de carga regional y un propósito implícito de recuperación ante desastres. Uno de los sitios activos contiene el puente y los cachés, mientras que el otro solo contiene los cachés, similar a la configuración activa-pasiva. Sin embargo, la diferencia en este caso es que ambos sitios replican datos entre sí, ya que ambos atienden activamente las operaciones de los clientes.
Aparte de las configuraciones antes mencionadas, NCache también proporciona el manejo de tres o más centros de datos. En este caso, uno de los sitios es un sitio de puente, que contiene el puente y los cachés. Los otros sitios solo contienen los cachés. Todos los sitios que no son puente están conectados al sitio puente, por lo que los datos se replican en todos los sitios simultáneamente. También puede crear un puente de respaldo en cualquiera de estos sitios para garantizar una alta disponibilidad en caso de que el sitio del puente se caiga. Para obtener más detalles sobre esta configuración, puede dirigirse al blog Descripción de la replicación WAN de varios centros de datos.
Cuando tiene varios sitios activos, existe la posibilidad de que los mismos datos se actualicen simultáneamente en cada uno de esos sitios. Por defecto, el conflicto se resuelve en NCache utilizando la lógica "última actualización-gana". Sin embargo, también puede especificar un controlador de resolución de conflictos personalizado que resuelva el conflicto analizando los datos según su lógica.
El siguiente fragmento de código muestra una implementación simplificada del solucionador de conflictos que se implementa en el caché:
public class Resolver : IBridgeConflictResolver
{
public void Init(System.Collections.IDictionary parameters) {. . .}
public ConflictResolution Resolve(ProviderBridgeItem oldEntry, ProviderBridgeItem newEntry)
{
var conflictResolution = new ConflictResolution();
switch (oldEntry.BridgeItemVersion)
{
case BridgeItemVersion.OLD: { /* Replace Item with New Entry */ }
break;
case BridgeItemVersion.LATEST: { /* Keep Old Entry */ }
break;
case BridgeItemVersion.SAME: { /* Your custom logic */ }
break;
}
return conflictResolution;
// Configure this implementation on cache
}
public void Dispose() {. . .}
}
Para obtener más detalles sobre la resolución de conflictos, puede consultar Documentos de resolución de conflictos.
La replicación en centros de datos distribuidos regionalmente puede provocar una degradación del rendimiento debido a la latencia. Por lo tanto, NCache bridge realiza la replicación WAN asíncrona en paralelo en todos los centros de datos para que su aplicación no experimente ningún tiempo de inactividad mientras espera que se repliquen las operaciones.
Además, el puente también envía varios elementos de datos como una sola solicitud masiva al otro sitio, lo que reduce drásticamente los viajes de red a través de la WAN. Como complemento, el puente también tiene replicación integrada: es un clúster de 2 nodos que se autorreplica, por lo que tiene una alta disponibilidad. Para más detalles sobre NCache comportamiento del puente, puede consultar NCache Documentos de arquitectura de puentes.
NCache maneja a la perfección situaciones de desastre en cada una de las configuraciones de centros de datos antes mencionadas.