Consul vs Eureka vs Zookeeper: What are the differences?
Consul is a service discovery framework with a REST interface and some features such as health checking, service segmentation with its own internal distributed key-value store. Consul includes service discovery, but also rich health checking, locking, Key/value, multi-datacenter federation, an event system. Eureka – A service discovery tool, the architecture is primarily client/server, with clients mainly using embedded SDK to register and discover services. A service locator used as part of Netflix's load balancers and failovers. Zookeeper –Apache Zookeeper is a distributed key-value store which can be used as the basis to implement service discovery. Mostly a common-purpose distributed key/value store used for service-discovery in conjunction.
What is Consul?
What is Eureka?
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 Eureka?
What tools integrate with Consul?
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.