There are some interesting new alternatives such as etcd / serf/consul - but at the time ZooKeeper had the best track record (under Jepsen analysis). Things might have changed since then.
Aphyr has done a bunch of analysis of these systems part of his Jepsen tool: http://aphyr.com/tags/jepsen and http://aphyr.com/posts/291-call-me-maybe-zookeepe
If you are going to use ZooKeeper I strongly suggest looking at both Apache Curator and Netflix Exhibitor (they are complimentary).
The examples bundled with ZK don't handle all errors/edge cases...
Curator is a library of common patterns available to use mostly out of the box.
Exhibitor is a ZooKeeper "aware" supervisor system: https://github.com/Netflix/exhibitor
Also always remember your ensemble should have an odd number of nodes (3,5,7)
There are some interesting new alternatives such as etcd / serf/consul - but at the time ZooKeeper had the best track record (under Jepsen analysis). Things might have changed since then.
Aphyr has done a bunch of analysis of these systems part of his Jepsen tool: http://aphyr.com/tags/jepsen and http://aphyr.com/posts/291-call-me-maybe-zookeepe
If you are going to use ZooKeeper I strongly suggest looking at both Apache Curator and Netflix Exhibitor (they are complimentary).
The examples bundled with ZK don't handle all errors/edge cases...
Curator is a library of common patterns available to use mostly out of the box.
Exhibitor is a ZooKeeper "aware" supervisor system: https://github.com/Netflix/exhibitor
Also always remember your ensemble should have an odd number of nodes (3,5,7)