Vous pouvez créer des comportements plus complexes en combinant plusieurs affinités. Par exemple, l'état d'une application peut être enregistré par un serveur de répliques lié. Les exigences de sélection de noeud de cet exemple sont les suivantes :
Le serveur de répliques doit s'exécuter sur un noeud différent du noeud de l'application.
Si l'application bascule à partir de son noeud actuel, elle doit basculer sur le noeud où le serveur de répliques est en cours d'exécution.
Si l'application bascule sur le noeud où le serveur de répliques est en cours d'exécution, le serveur de répliques doit basculer sur un autre noeud. Si aucun autre noeud n'est disponible, le serveur de répliques doit passer hors ligne.
Vous pouvez satisfaire ces exigences en configurant comme suit les groupes de ressources de l'application et du serveur de répliques :
Le groupe de ressources qui contient l'application déclare une affinité positive faible avec le groupe de ressources qui contient le serveur de répliques.
Le groupe de ressources qui contient le serveur de répliques déclare une affinité négative forte avec le groupe de ressources qui contient l'application.
Cet exemple présente les commandes permettant de combiner des affinités entre les groupes de ressources suivants.
Le groupe de ressources app-rg représente une application dont l'état est suivi par un serveur de répliques.
Le groupe de ressources rep-rg représente le serveur de répliques.
Dans cet exemple, les groupes de ressources déclarent des affinités comme suit :
Le groupe de ressources app-rg déclare une affinité positive faible avec le groupe de ressources rep-rg.
Le groupe de ressources rep-rg déclare une affinité négative forte avec le groupe de ressources app-rg.
Cet exemple suppose que les deux groupes de ressources existent.
# clresourcegroup set -p RG_affinities=+rep-rg app-rg # clresourcegroup set -p RG_affinities=--app-rg rep-rg