Store cluster configuration that multiple servers need to read and watch for live updates
Implement leader election so a distributed cluster automatically picks a replacement when one server fails
Coordinate distributed locks so only one worker processes a job at a time
Receive instant notifications when a member of a server cluster becomes unavailable
| apache/zookeeper | netflix/conductor | google/guice | |
|---|---|---|---|
| Stars | 12,763 | 12,774 | 12,744 |
| Language | Java | Java | Java |
| Setup difficulty | moderate | hard | moderate |
| Complexity | 4/5 | 4/5 | 3/5 |
| Audience | ops devops | ops devops | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires Java 8 or later, binary releases available on the Apache website so you do not need to build from source.
Apache ZooKeeper is a coordination service for distributed systems. When you have many computers working together as a cluster, they need a reliable way to agree on shared state: which server is currently the leader, what configuration settings are in effect, which jobs are locked by which worker. Without a dedicated tool for this, each team ends up building their own fragile coordination logic. ZooKeeper provides that as a reusable service. You can think of it as a small, highly reliable database that distributed applications use to store coordination data and get notified when something changes. For example, a cluster of servers might all watch a particular entry in ZooKeeper, and when one server becomes unavailable, the others are notified immediately and can elect a replacement leader. ZooKeeper is a foundational piece of infrastructure used inside many large-scale systems. It is written in Java and has been an Apache project for many years. The GitHub repository contains the full source code, and releases are published both on the Apache website and to Maven Central, which is the standard package repository for Java libraries. The README in this repository is brief and mainly points to the project website and wiki for full documentation. Building from source requires Maven and a recent version of Java 8 or later.
A reliable coordination service for distributed systems that helps clusters of computers agree on shared state, elect leaders, and get instant notifications when something changes.
Mainly Java. The stack also includes Java, Maven, C.
Apache 2.0, use, modify, and distribute freely for any purpose, including commercial products.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.