Consul vs Zookeeper: What are the differences?
Consul: A tool for service discovery, monitoring and configuration. Consul is a tool for service discovery and configuration. Consul is distributed, highly available, and extremely scalable; Zookeeper: Because coordinating distributed systems is a Zoo. A centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications.
Consul and Zookeeper can be primarily classified as "Open Source Service Discovery" tools.
"Great service discovery infrastructure" is the top reason why over 49 developers like Consul, while over 9 developers mention "High performance ,easy to generate node specific config" as the leading cause for choosing Zookeeper.
Consul is an open source tool with 16.2K GitHub stars and 2.82K GitHub forks. Here's a link to Consul's open source repository on GitHub.
DigitalOcean, imgix, and Leftronic are some of the popular companies that use Consul, whereas Zookeeper is used by Uber Technologies, Pinterest, and Coursera. Consul has a broader approval, being mentioned in 131 company stacks & 52 developers stacks; compared to Zookeeper, which is listed in 116 company stacks and 48 developer stacks.
What is Consul?
What is Zookeeper?
Want advice about which of these to choose?Ask the StackShare community!
What are the cons of using Consul?
What are the cons of using Zookeeper?
What tools integrate with Consul?
What tools integrate with Zookeeper?
Initially, Stitch only supported real-time updates and addressed this problem with a MapReduce job named The Restorator that performed the following actions:
- Calculated the expected totals
- Queried Cassandra to get the values it had for each counter
- Calculated the increments needed to apply to fix the counters
- Applied the increments
Meanwhile, to stop the sand shifting under its feet, The Restorator needed to coordinate a locking system between itself and the real-time processors, so that the processors did not try to simultaneously apply increments to the same counter, resulting in a race-condition. It used ZooKeeper for this.
Like many large scale web sites, Pinterest’s infrastructure consists of servers that communicate with backend services composed of a number of individual servers for managing load and fault tolerance. Ideally, we’d like the configuration to reflect only the active hosts, so clients don’t need to deal with bad hosts as often. ZooKeeper provides a well known pattern to solve this problem.
All our services use Consul for discovery, configuration and cluster management (auto scaling, health monitoring, dynamic reconfiguration, leader elections)
Zookeeper manages our state, and tells each node what version of code it should be running.
Used Zookeeper as the resource management system for Mesos/Marathon services.