Votre application peut être déployée sur plusieurs centres de données, soit pour la reprise après sinistre, soit pour l'équilibrage géographique de la charge du trafic. Si votre application est à fort trafic, elle doit utiliser un cache distribué. Dans ces situations, vous devez vous assurer que votre cache distribué peut effectuer une réplication WAN pour une haute disponibilité des données en cas de sinistre.
NCache fournit Bridge pour gérer la réplication WAN des caches distribués. Il forme un pont entre les centres de données distribués et effectue une réplication asynchrone des données afin d'éviter toute dégradation des performances. De plus, le pont lui-même est un cluster de deux serveurs à des fins de haute disponibilité.
Vous pouvez avoir un centre de données actif et un centre de données passif principalement à des fins de reprise après sinistre. Dans cette configuration, un site actif contient le pont et les caches, tandis que le passif ne contient que les caches. Le site actif réplique de manière asynchrone les données via le pont vers le site passif, qui sert de sauvegarde en cas de sinistre.
Vous pouvez avoir deux centres de données actifs pour une combinaison d'équilibrage de charge régional et un objectif implicite de reprise après sinistre. L'un des sites actifs contient le pont et les caches tandis que l'autre ne contient que les caches, similaire à la configuration active-passive. Cependant, la différence dans ce cas est que les deux sites répliquent les données l'un avec l'autre car ils servent tous les deux activement les opérations client.
Outre les configurations susmentionnées, NCache assure également la gestion de trois centres de données ou plus. Dans ce cas, l'un des sites est un site de pont, qui contient le pont et les caches. Les autres sites ne contiennent que les caches. Tous les sites sans pont sont connectés au site pont, de sorte que les données sont répliquées simultanément sur tous les sites. Vous pouvez également créer un pont de sauvegarde sur l'un de ces sites pour garantir une haute disponibilité en cas de panne du site de pont. Pour plus de détail sur cette configuration, vous pouvez vous diriger vers le blog Comprendre la réplication WAN multi-centres de données.
Lorsque vous avez plusieurs sites actifs, il est possible que les mêmes données soient mises à jour simultanément sur chacun de ces sites. Par défaut, le conflit est résolu dans NCache en utilisant la logique « last-update-wins ». Cependant, vous pouvez également spécifier un gestionnaire de résolution de conflits personnalisé qui résout le conflit en analysant les données en fonction de votre logique.
L'extrait de code suivant montre une implémentation simplifiée du résolveur de conflits qui est implémenté sur le cache :
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() {. . .}
}
Pour plus de détails sur la résolution des conflits, vous pouvez consulter Documents de résolution de conflits.
La réplication dans des centres de données distribués au niveau régional peut entraîner une dégradation des performances en raison de la latence. Ainsi, NCache bridge effectue une réplication WAN asynchrone en parallèle sur tous les centres de données afin que votre application ne subisse aucun temps d'arrêt en attendant que les opérations soient répliquées.
De plus, le pont envoie également plusieurs éléments de données sous la forme d'une seule demande groupée à l'autre site, ce qui réduit considérablement les déplacements du réseau sur le WAN. En tant que module complémentaire, le pont dispose également d'une réplication intégrée : il s'agit d'un cluster à 2 nœuds qui s'auto-réplique, il est donc lui-même hautement disponible. Pour plus de détails sur NCache comportement de pont, vous pouvez vous référer à NCache Documents sur l'architecture des ponts.
NCache gère de manière transparente les situations de catastrophe dans chacune des configurations de centre de données susmentionnées.