Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 9508|Répondre: 2

Implémentation de verrou distribué par Zookeeper

[Copié le lien]
Publié sur 20/03/2018 16:23:52 | | | |
Conception de la serrure

  Voyez l’idée de l’implémentation du verrou :
1. Commencez par créer un répertoire en tant que verrou (znode), généralement utilisé pour décrire l’entité verrouillée, appelée :/lock_node
2. Le client qui souhaite obtenir le verrou crée un znode dans le répertoire du verrou en tant que nœud enfant du verrou/lock_node, et le type de nœud est Nœud Temporaire Ordonné (EPHEMERAL_SEQUENTIAL) ;
Par exemple, deux clients créent des znodes, /lock_node/lock-1 et /lock_node/lock-2
3. Le client actuel appelle getChildren(/lock_node) pour obtenir tous les nœuds enfants du répertoire de verrouillage, sans définir watch, puis obtenir les nœuds frères plus petits que lui (créés à l’étape 2).
4. Le nœud qui est plus petit que lui-même à l’étape 3 n’existe pas && le plus petit nœud est le même que celui créé à l’étape 2, ce qui indique que le numéro de séquence client actuel est le plus petit, obtenir le verrouillage, et finir.
5. Le client surveille l’état du nœud temporaire ordonné qui est le plus petit à lui
6. Si le statut du sous-nœud surveillé change, on passe à l’étape 3 et on poursuit les opérations de suivi jusqu’à la sortie de la course de verrouillage.     

L’auteur n’introduira pas ici le verrou de distribution, examinons le schéma de flux de toute la conception du code comme suit





Précédent:Explication détaillée d’AutoResetEvent en .net/c#
Prochain:Concernant le problème qu’Android 7.0 ne peut pas effectuer la capture de paquets https
 Propriétaire| Publié sur 20/03/2018 16:49:35 |
Un écluse distribué par Zookeeper :
1. Zookeeper est un nœud avec des nœuds, similaire à un répertoire de fichiers, donc nous abstraitons le verrou dans un répertoire, zookeeper a un nœud de EPHEMERAL_SEQUENTIAL types, plusieurs threads et, lorsque le nœud est créé par zookeeper, cela nous aide à organiser l’ordre de création, de sorte que les répertoires sous ce nœud sont séquentiels.
2. Obtenir le plus petit nœud du répertoire courant, déterminer si le plus petit nœud est le nœud actuel, si cela signifie que le verrouillage est réussi, si ce n’est pas l’échec d’acquisition du verrou.
3. Lorsque le verrouillage échoue, pour éviter l’effet d’essaim, il faut obtenir le nœud précédent du nœud actuel, puis écouter le nœud.
4. Lorsque vous faites cela, lorsque vous relâchez le verrouillage, vous notifierez également le nœud suivant.
 Propriétaire| Publié sur 20/03/2018 16:54:46 |
Renseignez-vous à l’avance sur le statut des gardiens de zoo et les types d’événements.


Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com