Original link Address: http://luyiisme.github.io/2017/04/22/spring-cloud-service-discovery-products/
Here on the usual use of services found in the product to carry out the comparison of characteristics, first of all to see the conclusion:
Feature |
Consul |
Zookeeper |
Etcd |
Euerka |
Service Health Check |
Service status, memory, hard drive, etc. |
(weak) long connection, keepalive |
Connect Heartbeat |
Available support |
Multi-Data center |
Support |
— |
— |
— |
KV Storage Services |
Support |
Support |
Support |
— |
Consistency |
Raft |
Paxos |
Raft |
— |
Caps |
Ca |
Cp |
Cp |
Ap |
Using interfaces (multilingual capabilities) |
Support for HTTP and DNS |
Client |
Http/grpc |
HTTP (Sidecar) |
Watch support |
Full volume/support long polling |
Support |
Support Long polling |
Supports large increments of long polling/ |
Self monitoring |
Metrics |
— |
Metrics |
Metrics |
Safety |
Acl/https |
Cc. |
HTTPS Support (weak) |
— |
Spring Cloud Integration |
has supported |
has supported |
has supported |
has supported |
Health Checks for services
Euraka need to be explicitly configured for health check support when used, ZOOKEEPER,ETCD is not healthy when the connection to the service process is lost, and consul is relatively more detailed, such as whether the memory has been used for 90% or not, and the file system space is not fast enough. Multi-Data center support
Consul synchronization across the data center through the WAN Gossip protocol, and other products require additional development effort; KV Storage Services
In addition to Eureka, the other several are able to support the K-V storage services, so the following will be mentioned in these products to pursue high consistency of the important reasons. and the provision of storage services, but also can be better transformed into dynamic configuration services Oh. The choice of CAP theory in product design
Eureka typical AP, as the service found under the distributed scenario is more appropriate, service discovery scenarios have a higher availability priority, consistency is not particularly fatal. Second, the CA-type scenario Consul can also provide high availability and K-V store services to ensure consistency. While ZOOKEEPER,ETCD is the CP type sacrificing usability, it doesn't have much advantage in service discovery scenarios; multi-lingual competence and access Protocol for external service delivery
Zookeeper support is weak, and several others support the possibility of http11 providing access. Euraka generally provides access support for multilingual clients in a sidecar manner. ETCD also provides GRPC support. Consul provides DNS support in addition to the standard Rest service APIs. Watch support (client-side observation of service provider changes)
Zookeeper supports server-side push changes, and Eureka 2.0 (in development) also plans to support them. Eureka 1,consul,etcd The perception of change through the way of long polling; monitoring of its own cluster
In addition to zookeeper, the other several are supported by the default metrics, the operational dimension can collect and alarm these metrics information to achieve monitoring purposes; security
Consul,zookeeper supports ACLs, and CONSUL,ETCD supports secure channel HTTPS. Integration of Spring Cloud
At present, there are corresponding boot starter, which provides the integration capability.
Overall, the current consul own function, and spring cloud support for its integration is relatively perfect, and the complexity of the operation is simpler (no detailed discussion), Eureka design more in line with the scene, but still need to continue to improve. Copyright Notice
First posted on this, reprint please keep the above link