A few comments:

* NodeMonitor.createRootIfNotExists() should catch NodeExists. In the case
of multiple clients, this is a possibility.

* I'd add a start method and create the ZooKeeper instance there. This
gives users a chance to set a listener so as to receive all messages.

* All ZooKeeper operations should be in some kind of retry loop. The
client can lose connection to a given server but successfully reconnect to
another one in the cluster.

* When creating the Znode, it can succeed on the server but fail to return
the result to the client. On a Disconnect/Session exception, you should
retry and then call getChildren and search for your node.

-JZ

On 11/25/11 2:45 AM, "Olivier Van Acker" <cyberroa...@gmail.com> wrote:

>I've written a example app on how to do implement leadership election in
>with zookeeper
>Is there anyone on the list who'd like to review my app and if it needs
>improvement or not?
>
>the app is on github:
>https://github.com/cyberroadie/zookeeper-leader
>
>and explained how it works on my blog:
>http://cyberroadie.wordpress.com/2011/11/24/implementing-leader-election-w
>ith-zookeeper/
>
>Olivier

Reply via email to