Géoréplication sur plusieurs centres de données
NCache vous propose la géoréplication en tant que plan de reprise après sinistre via la fonctionnalité Bridge. Un pont est créé entre plusieurs caches de cluster et les données sont répliquées de la source vers l'autre site via ce pont, sans perturber les opérations des clients.
Pour plus de détails conceptuels et comportementaux sur le pont, vous pouvez vous référer à Architecture de pont dans le Guide de l'administrateur.
Dans Bridge, il peut y avoir plusieurs caches de sites actifs et les opérations de cache peuvent être simultanées. Il est possible que le client connecté à un cache de site actif ajoute des clés et que la même opération de clé soit effectuée par l'autre nœud actif. Dans une telle situation, le résolveur de conflits de pont entre en jeu. Il résout les conflits et décide quelle clé appliquer sur le cache en fonction des règles définies.
Si l'utilisateur n'a configuré aucune règle de résolution de conflits, alors NCache utilise la règle de résolution par défaut. Dans la règle par défaut, un intervalle de temps est ajouté à chaque opération effectuée sur le cache et il conserve la dernière opération. Une vérification est effectuée sur la version de l'élément pont. S'il a un horodatage plus récent ou si la version est la plus récente ou la même, il le remplace par la nouvelle entrée et en cas d'ancienne, il conserve l'ancienne entrée.
Conditions préalables à la géo-réplication pour les centres de données
Avant d'utiliser la géo-réplication avec NCache s'assurer que les conditions suivantes sont remplies :
- Pour en savoir plus sur les prérequis standard requis pour travailler avec tous NCache fonctionnalités côté serveur, veuillez vous référer à la page donnée sur Prérequis de l'API côté serveur.
- Pour plus de détails sur l'API, reportez-vous à : ICache, CacheItem, IBridgeConflictResolver, BridgeItemVersion.
- Il doit s'agir d'un projet de bibliothèque de classes utilisant Microsoft Visual Studio.
- Assurez-vous de configurer le pont utilisant l' NCache Management Center après avoir implémenté cette classe.
Exemple d'implémentation de l'interface IBridgeConflictResolver
L’exemple d’implémentation suivant du Conflict Resolver contient une logique permettant de résoudre tout conflit pouvant survenir lors de la réplication d’une opération à partir du pont pour une clé qui existe déjà dans le cache. Chaque fois qu'un conflit survient, le cache appelle BridgeConflictResolution
pour décider quelle opération appliquer sur le cache en fonction des règles qui y sont définies. Il faut deux paramètres/entrées, les deux sont du ProviderBridgeItem
type. ProviderBridgeItem
contient les paramètres suivants :
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
}
}
Voir aussi
Dépendances de cache personnalisées
Processeur d'entrée
Configuration du pont pour la réplication WAN