2017-05-17 2 views
0

Scénario:conservateur mutex a échoué après reconnecté

Utiliser conservateur pour mettre en oeuvre un mutex distribué. si le client qui a déjà acquis le mutex est déconnecté du serveur zk en raison d'une défaillance du réseau, alors Curator essayera de se reconnecter. Supposons qu'il soit finalement reconnecté, mais la dernière session est expirée et le noeud de verrouillage éphémère utilisé pour mutex est également disparu, alors ce mutex ne fonctionne pas à nouveau!

Alors, comment gérer le mutex après une reconnexion lors de l'utilisation de Curator? Merci.

Répondre

1

Vous devriez lire la note sur la gestion des erreurs avec la commissaire (note: Je suis l'auteur principal du conservateur): http://curator.apache.org/errors.html ainsi que Tech Note 12: https://cwiki.apache.org/confluence/display/CURATOR/TN12

Le TL; DR est que si la connexion échoue (SUSPENDU), vous devez supposer que votre verrou est perdu et interrompre le thread qui détient le verrou. Si vous faites très attention, vous pouvez attendre que la connexion passe à LOST, mais ma recommandation est toujours de supposer que SUSPENDED signifie que vous n'avez plus le verrou.