3 ms·
It's been about 6 months since I worked with Zookeeper, but here are a couple lessons I learned along the way... 1. Only use with Java (JVM). The C client libr
by eikenberry 12y ago
It's been about 6 months since I worked with Zookeeper, but here are a couple lessons I learned along the way...
1. Only use with Java (JVM). The C client library which most other languages wrap to work with zookeeper is very buggy. It had lots of corner cases which would crash the application using it.
2. If you are on AWS make sure your zookeeper instances have static IPs (use EIPs or EINs). We had a cluster in AWS classic with the cluster defined by domain names. At startup zookeeper would lookup the IP for the domain and cache it, never checking it again. This meant you could only loose 1 node in a 5 node cluster as you needed the other spare to handle the missing node during a rolling restart. It was a PITA.
Personally I recommend etcd now if you need functionality of this sort, particularly if you are not using Java.
- lobster_johnson 12y agoetcd looks very nice, but it's obvious that it's still under heavy development; for the latest release they deprecated the very useful high-level primitives (locking and election, the former which is buggy): https://github.com/coreos/etcd/blob/master/Documentation/modules.md https://github.com/coreos/etcd/blob/master/Documentation/mod...