Avec la réplication asynchrone multimaître, vous liez un ensemble de domaines de service de catalogue. Les domaines de service de catalogue connectés sont ensuite synchronisés en utilisant la réplication via les liaisons. Vous pouvez définir les liaisons à l'aide de fichiers de propriétés, lors de l'exécution avec des programmes JMX (Java Management Extensions) ou avec les utilitaires de ligne de commande. Le groupe de liaisons actuel d'un domaine est stocké dans le service de catalogue. Vous pouvez ajouter et supprimer des liens sans redémarrer le domaine de service de catalogue qui héberge la grille de données.
- Définissez des liaisons dans le fichier de propriétés du serveur de catalogue de chaque domaine de service de catalogue de la topologie à des fin d'amorçage.
Voir Fichier de propriétés du serveur pour plus d'informations sur la définition de ce fichier pour le serveur de catalogue.
Important : Les noms de propriété sont sensibles à la casse.
- Nom de domaine local :
- Indiquez le nom du domaine de service de catalogue du serveur de catalogue actuel, le domaine A, par exemple.
domainName=A
- Liste facultative des noms de domaines externes :
Indiquez les noms des domaines de service de catalogue auxquels vous souhaitez vous lier dans la topologie de réplication multimaître ; le domaine B, par exemple :
foreignDomains=B
- Liste facultative des noms de domaines externes :
- Spécifie les informations de connexion des serveurs de catalogue des domaines externes ; le domaine B, par exemple :
B.endPoints=hostB1:2809, hostB2:2809
Si un domaine externe comporte plusieurs serveurs de catalogue, spécifiez-les tous.
- Utilisez l'utilitaire xscmd ou la programmation JMX pour ajouter ou supprimer des liaison lors de l'exécution.
Les liens d'un domaine sont conservés dans le service de catalogue dans la mémoire répliquée. Cet ensemble de liens
peut être modifié à tout moment par l'administrateur sans nécessiter pour autant un redémarrage de ce domaine ou des autres domaines. L'utilitaire xscmd inclut plusieurs options pour l'utilisation des liaisons.
L'utilitaire xscmd se connecte à un service de catalogue et donc un domaine de service de catalogue unique.
Par conséquent, l'utilitaire xscmd peut être utilisé pour créer et supprimer des liaisons entre le domaine auquel il se connecte et n'importe quel autre domaine.
Utilisez la ligne de commande pour créer une liaison, par exemple :
xscmd –c establishLink -cep host:2809 -fd dname -fe fdHostA:2809,fdHostB:2809
Cette commande établit une nouvelle liaison entre le domaine local et le domaine externe nommé dname. Le service de catalogue dname est exécuté à l'adresse fdHostA:2809 et à l'adresse fdHostB:2809.
Le domaine de service de catalogue local a un hôte d'écoute de service de catalogue et le port host:2809. Indiquez tous les noeuds finals du service de catalogue à partir du domaine externe de sorte que la connectivité à la tolérance aux pannes pour le domaine soit possible. N'utilisez pas une seule paire host:port pour le service de catalogue du domaine de service de catalogue externe.
Vous pouvez utiliser n'importe quelle machine virtuelle Java avec xscmd et utilisez l'option -cep. Si le serveur de catalogue est hébergé sur un gestionnaire de déploiement WebSphere
Application Server, le port est habituellement le 9809.
Les ports spécifiés pour le domaine externe ne sont pas des ports JMX. Ce sont
les ports que l'on utilise d'ordinaire pour les clients eXtreme Scale.
Une fois que la commande d'ajout de nouveau lien a été émise,
le service de catalogue donne instruction à tous les conteneurs qu'il gère
de commencer à se répliquer vers le domaine externe. Un lien n'est pas nécessaire des deux côtés. Il suffit d'en créer un sur l'une des deux extrémités.
La ligne de commande permet également de supprimer un lien, par exemple :
xscmd –c dismissLink -cep host:2809 -fd dname
Cette commande
se connecte au service de catalogue d'un domaine et lui donne instruction d'arrêter la réplication vers un domaine spécifique. Une liaison doit être supprimée sur un côté uniquement.
Liaison entre deux domaines de service de catalogue
Supposons que vous souhaitiez définir une configuration à deux domaines comportant les domaines de service de catalogue A et B.
Figure 1. Liaison entre les domaines de service de catalogue
Voici le fichier de propriétés du serveur de catalogue dans le domaine A :
domainName=A
foreignDomains=B
B.endPoints=hostB1:2809, hostB2:2809
Voici le fichier de propriétés du serveur de catalogue dans le domaine B. Notez les similitudes entres les deux fichiers de propriétés.
domainName=B
foreignDomains=A
A.endPoints=hostA1:2809,hostA2:2809
Une fois les deux domaines démarrés, toutes les grilles de données ayant les caractéristiques suivantes sont répliquées entre ces domaines.
- Dispose d'un service de catalogue privé avec un nom de domaine unique
- A le même nom de grille de données que les autres grilles du domaine
- A le même nombre de partitions que les autres grilles de données dans le domaine
- Est une grille de données FIXED_PARTITION (les grilles de données PER_CONTAINER ne peuvent pas être répliquées)
- A le même nombre de partitions (sans forcément pour autant avoir le même nombre et le même type de fragments réplique)
- A les mêmes types de données répliqués que les autres grilles du domaine
- A les mêmes nom de groupe de mappes, noms de mappe et modèles de mappes dynamiques que les autres grilles dans le domaine
La règle de réplication d'un domaine de service de catalogue est ignorée.
L'exemple qui précède
montre comment configurer chaque domaine pour qu'il ait un lien vers l'autre domaine, mais, en fait, il suffit de définir un lien dans une seule direction. C'est particulièrement utile lorsqu'on a affaire à des topologies en étoile, la configuration s'en trouve considérablement simplifiée. Le fichier de propriétés du concentrateur
ne nécessite pas d'être modifié au fur et à mesure que des noeuds sont ajoutés à la topologie et il suffit que le fichier de chacun de ces noeuds
comprenne des informations relatives au concentrateur. De la même manière, dans une topologie en anneau,
il suffit que chacun des domaines ait un lien avec le domaine qui le précède et avec celui qui le suit dans l'anneau.
Exemple : topologie en étoile
Figure 2. Topologie en étoile
La topologie avec un concentrateur et quatre domaines A, B, C et D possède des fichiers de propriétés de serveur, comme dans les exemples suivants.
domainName=Hub
La Branche
A a les propriétés de serveur suivantes :
domainName=A
foreignDomains=Hub
Hub.endPoints=hostH1:2809, hostH2:2809
La branche B a les propriétés de serveur suivantes :
domainName=B
foreignDomains=Hub
Hub.endPoints=hostH1:2809, hostH2:2809
La branche C a les propriétés de serveur suivantes :
domainName=C
foreignDomains=Hub
Hub.endPoints=hostH1:2809, hostH2:2809
La branche D a les propriétés de serveur suivantes :
domainName=D
foreignDomains=Hub
Hub.endPoints=hostH1:2809, hostH2:2809
Que faire ensuite
Vous pouvez fournir un arbitre de collisions personnalisé pour résoudre les conflits entre les domaines de service de catalogue. Pour plus d'informations, voir
Développement d'arbitres personnalisés pour la réplication multi-maître.